Fórum ClientDataSet e ApplyUpdates #220731
17/03/2004
0
Estou usando o Database+Query(BDE)+DataSetProvider+ClientDataSet para fazer acesso a um banco de dados.
As consultas estão sendo feitas de forma correta, sem problemas. Mas na hora de incluir, editar ou apagar um registro ele dá o erro:
cdsprodutos: Must apply updates before refreshing data
O erro é devido a cached updates, diz que eu tenho que dar um applyupdates antes do refresh, mas estou fazendo isso, dá uma olhada no código abaixo que está no botão confirma:
begin
try
if Application.MessageBox(´Confirmar operação corrente?´,
mb_YesNo+mb_IconQuestion) = idYes then
begin
dtmcadastros.dtbpdvfw.StartTransaction;
dtmcadastros.cdsfuncionarios.Post;
dtmcadastros.cdsfuncionarios.ApplyUpdates(-1);
dtmcadastros.dtbpdvfw.Commit;
if dtmcadastros.cdsfuncionarios.State in [dsInsert] then
begin
dtmcadastros.cdsfuncionarios.Append;
dbedtcodigo.SetFocus;
end
else
frmNovoFuncionario.Close;
end;
except
dtmcadastros.dtbpdvfw.Rollback;
end;
As alterações não são gravadas no Banco de dados e fica mostrando o erro já mencionado quando dou um refresh.
A cached updates da Query está desabilitada, mas mesmo habilitando apresenta o mesmo problema
Alguém tem alguma idéia do que possa ser?
Valeu.
Braytiner
Braytiner Heggendorn
Curtir tópico
+ 0Posts
17/03/2004
Cbritojunior
Experimente utilizar o ApplyUpdates(0).
Gostei + 0
18/03/2004
Danielclubedelphi
Como nunca usei clientdataset com BDE posso estar errado, mas acho que o problema é que esta faltando um componente de atualização... acho que o nome é updatesql... algo assim... aquele componente que tem um mais(+) la na paleta do BDE...
Gostei + 0
18/03/2004
Braytiner Heggendorn
Mas o problema refere-se ao fato de que a Query estava com RequestLive=False o que impossibilitava a Query de atualizar os dados. Logo após defini a propriedade ResolveToDataset como True o que indica ao povider que a Query irá atualizar os dados.
Braytiner
Gostei + 0
22/03/2004
Marcosalex
Voce pode usar o DBExpress pra acessar o MySQL, daí não precisa de ODBC e fica muito mais rápido. As próximas versões do Delphi só vão aceitar BDE para Dbase e Paradox.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)