Fórum Problema de atualização com DBExpress #275249
02/04/2005
0
Estou usando DBExpress, ClientDataSet e DataSetProvider.
No ClientDataSet utilizo a seguinte instrução:
select D.*,ND.DESCRICAO AS DESCND,GD.DESCRICAO AS
DESCGD,B.NOME,B.SIGLA,B.CONTA,B.AGENCIA,U.LOGIN,
U.NOME,CC.DESCRICAO AS DESCCC from DESPESAS D
INNER JOIN NATUREZADESPESAS ND
ON (ND.GRUPO=D.GRUPO AND ND.CODIGO=NATUREZA)
INNER JOIN GRUPODESPESAS GD ON (GD.CODIGO=D.GRUPO)
INNER JOIN BANCOS B ON (B.CODIGO=BANCO)
INNER JOIN CENTROCUSTOS CC ON (CC.CODIGO=CENTROCUSTO)
INNER JOIN USUARIOS U ON (U.CODIGO=D.USUARIO)
Como pode notar tenho uma tabela que necessita de campos de outras tabelas como lookup´s. Nesses Campos ´loockup´s´ desmarquei todas as opções da propriedade ProviderFlags.
O problema é que quando insiro um registro e dou o applyUpdates, ele aparentemente grava o registro, mas não grava no banco.
Utilizo Delphi 7.
Se alguém poder me ajudar agradeceria muito.
No ClientDataSet utilizo a seguinte instrução:
select D.*,ND.DESCRICAO AS DESCND,GD.DESCRICAO AS
DESCGD,B.NOME,B.SIGLA,B.CONTA,B.AGENCIA,U.LOGIN,
U.NOME,CC.DESCRICAO AS DESCCC from DESPESAS D
INNER JOIN NATUREZADESPESAS ND
ON (ND.GRUPO=D.GRUPO AND ND.CODIGO=NATUREZA)
INNER JOIN GRUPODESPESAS GD ON (GD.CODIGO=D.GRUPO)
INNER JOIN BANCOS B ON (B.CODIGO=BANCO)
INNER JOIN CENTROCUSTOS CC ON (CC.CODIGO=CENTROCUSTO)
INNER JOIN USUARIOS U ON (U.CODIGO=D.USUARIO)
Como pode notar tenho uma tabela que necessita de campos de outras tabelas como lookup´s. Nesses Campos ´loockup´s´ desmarquei todas as opções da propriedade ProviderFlags.
O problema é que quando insiro um registro e dou o applyUpdates, ele aparentemente grava o registro, mas não grava no banco.
Utilizo Delphi 7.
Se alguém poder me ajudar agradeceria muito.
Antoniologica
Curtir tópico
+ 0
Responder
Posts
03/04/2005
Vinicius2k
Antonio,
O que precisa ser feito com as colunas estrangeiras, já foi feito. Presumo que o problema não seja esse...
A primeira coisa que vc deve fazer é verificar se está ocorrendo algum erro no ApplyUpdates : Lembrado que o método ApplyUpdates [b:5499411a18]não gera exceções[/b:5499411a18] para erros vindos do SGBD, vc precisa testar, de forma simples, se está havendo algum erro, +/- assim :
Outra forma é utilizar o evento [b:5499411a18]OnReconcileError[/b:5499411a18] do ClientDataSet, com um código para exibição do erro :
De posse do erro vindo do banco (se houver um) vc saberá o que está incorreto e poderá solucionar a questão.
Se não houverem erros, o problema pode estar na falta de Commit da transação, se vc estiver controlando a transação manualmente... Vc está usando controle manual das transações?
Também pode ser interessante ler este tópico: http://forum.clubedelphi.net/viewtopic.php?t=58547
T+
O que precisa ser feito com as colunas estrangeiras, já foi feito. Presumo que o problema não seja esse...
A primeira coisa que vc deve fazer é verificar se está ocorrendo algum erro no ApplyUpdates : Lembrado que o método ApplyUpdates [b:5499411a18]não gera exceções[/b:5499411a18] para erros vindos do SGBD, vc precisa testar, de forma simples, se está havendo algum erro, +/- assim :
if ClientDataSet1.ApplyUpdates(0) > 0 then ShowMessage(´Ocorreram erros...´) else ShowMessage(´Update OK.´)
Outra forma é utilizar o evento [b:5499411a18]OnReconcileError[/b:5499411a18] do ClientDataSet, com um código para exibição do erro :
ShowMessage(E.Message);
De posse do erro vindo do banco (se houver um) vc saberá o que está incorreto e poderá solucionar a questão.
Se não houverem erros, o problema pode estar na falta de Commit da transação, se vc estiver controlando a transação manualmente... Vc está usando controle manual das transações?
Também pode ser interessante ler este tópico: http://forum.clubedelphi.net/viewtopic.php?t=58547
T+
Responder
Gostei + 0
04/04/2005
Antoniologica
[b:1570a98161]Valeu Vinicius[/b:1570a98161], consegui resolver problema![/b]
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)