Problema de atualização com DBExpress

Delphi

02/04/2005

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.


Antoniologica

Antoniologica

Curtidas 0

Respostas

Vinicius2k

Vinicius2k

02/04/2005

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 :
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+


GOSTEI 0
Antoniologica

Antoniologica

02/04/2005

[b:1570a98161]Valeu Vinicius[/b:1570a98161], consegui resolver problema![/b]


GOSTEI 0
POSTAR