Fórum Gravar dados no GDB #230462

06/05/2004

0

Estou com dúvida em como( e quais ) ligar os componentes para gravar dados em um banco de dados IB. Estou fazendo da seguinte forma:
DataSourse -> ClientDataSet -> DataSetProvider -> IBQuery;IBTransaction -> IBDataBase

E para gravar os dados estou usando o seguinte comando:
ClientDataSet.ApplyUpdates(-1);

Mas os dados não estão sendo salvos no banco de dados!

Os dados estão ligados e são exibidos corretamente, porem não consigo realizar alterações nem incluir novos dados!
O que será que está errado?


Programador

Programador

Responder

Posts

06/05/2004

Dopi

Manipule o evento OnREconcileError do seu ClientDataSet e verifique a msg de erro..

O delphi já possui um formulario padrao para ReconcileError no Object Repository


procedure Tldm.cdsTerminalReconcileError(DataSet: TCustomClientDataSet;
E: EReconcileError; UpdateKind: TUpdateKind;
var Action: TReconcileAction);
begin
Action := HandleReconcileError(DataSet, UpdateKind, E);
end;


Responder

Gostei + 0

10/05/2004

Programador

Caro colega,

esse código que passou acima, não compilou, entretanto, acredito nem precisar desse código, pois pelo que vi, é um tratamento de erro, fato que não ocorre em meu programa, ele simplesmente não grava os dados no banco.gdb, as informações ficam apenas em queche de memoria mas nunca chega ao banco.gdb!

Será que alguem pode ajudar-me???


Responder

Gostei + 0

10/05/2004

Fer_nanda

depois de executar o cds, dê um ibtransaction.commit;


Responder

Gostei + 0

10/05/2004

Dopi

O ClientDataSet não gera nenhuma exceção se você não programar o OnReconcileError... Já passei por problema com o mesmo sintoma que você descreveu....

Experimente somente exibir a msg de erro: ShowMessage(E.message);

procedure Tldm.cdsTerminalReconcileError(DataSet: TCustomClientDataSet;
E: EReconcileError; UpdateKind: TUpdateKind;
var Action: TReconcileAction);
begin
ShowMessage(E.message);
end;


Verifique também o retorno da função ApplyUpdates... Se for maior que 0 é porque algum erro está acontecendo, então use o OnReconcileError para trata-lo...


Responder

Gostei + 0

10/05/2004

Comodelphi

Código: DataSourse -> ClientDataSet -> DataSetProvider -> IBQuery;IBTransaction -> IBDataBase


Aonde vc leu que era preciso isso tudo pra associar um DataSet? se vc não estiver pretendendo usar MultiTier/DataSnap vc está indo pelo caminho errado.


Responder

Gostei + 0

12/05/2004

Programador

[quote:388f9e11c2] Código: DataSourse -> ClientDataSet -> DataSetProvider -> IBQuery;IBTransaction -> IBDataBase


Aonde vc leu que era preciso isso tudo pra associar um DataSet? se vc não estiver pretendendo usar MultiTier/DataSnap vc está indo pelo caminho errado.[/quote:388f9e11c2]

Caro colega.

Na verdade, estou desenvolvendo uma aplicação para posteriormente ser migrada para multi-camada! É por isso que estou usando esse metodo para acessar o banco de dados! Se fosse com uma simples tabela ou query, não teria problemas para gravar os dados!

Sacô colega!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar