Gravar dados no GDB
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:
E para gravar os dados estou usando o seguinte comando:
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?
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
Curtidas 0
Respostas
Dopi
06/05/2004
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;
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;
GOSTEI 0
Programador
06/05/2004
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???
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???
GOSTEI 0
Fer_nanda
06/05/2004
depois de executar o cds, dê um ibtransaction.commit;
GOSTEI 0
Dopi
06/05/2004
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...
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...
GOSTEI 0
Comodelphi
06/05/2004
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.
GOSTEI 0
Programador
06/05/2004
[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!
GOSTEI 0