Problemas com FireBird!
Bom dia,
No sistema que estou desenvolvendo, tenho uma consulta de pacientes com algumas opções que eu posso estar escolhendo, uma delas é cadastrar novo paciente pressionando a tecla F2, tudo funciona normalmente só que na hora da gravação do registro ele não para o banco efetivamente, é como se não tivesse sido cadastrado. O que pode ser feito.
Desde já agradeço...
No sistema que estou desenvolvendo, tenho uma consulta de pacientes com algumas opções que eu posso estar escolhendo, uma delas é cadastrar novo paciente pressionando a tecla F2, tudo funciona normalmente só que na hora da gravação do registro ele não para o banco efetivamente, é como se não tivesse sido cadastrado. O que pode ser feito.
Desde já agradeço...
Jsaraujo
Curtidas 0
Respostas
Lucas Silva
09/06/2004
Dá uma olhada no fórum de IB/FB
http://delphiforum.icft.com.br/forum/viewforum.php?f=3
lá você deve encontrar algum material
http://delphiforum.icft.com.br/forum/viewforum.php?f=3
lá você deve encontrar algum material
GOSTEI 0
Vinicius2k
09/06/2004
Jeferson,
Informe-nos qual camada de acesso vc está utilizando (IBX, dbExpress, etc) e coloque a parte código onde vc faz a inserção para que tentemos ajudá-lo.
À princípio pode ser o problema mais comum... vc está commitando a transação?
T+
Informe-nos qual camada de acesso vc está utilizando (IBX, dbExpress, etc) e coloque a parte código onde vc faz a inserção para que tentemos ajudá-lo.
À princípio pode ser o problema mais comum... vc está commitando a transação?
T+
GOSTEI 0
Jsaraujo
09/06/2004
Ola amigo,
estou usando o dbexpress e sim estou comitando a transação usando o comando applyupdates...quando eu abro o formulario de cadastro de pacientes direto ele cadastra normalmente, mas quando ele é aberto pela consulta para realizar o cadastro, as informações não são gravadas, é como se algo estive dando um rollback. Simplesmente as informações não vão para o banco, será que o firebird tem problemas com dbgrid?
estou usando o dbexpress e sim estou comitando a transação usando o comando applyupdates...quando eu abro o formulario de cadastro de pacientes direto ele cadastra normalmente, mas quando ele é aberto pela consulta para realizar o cadastro, as informações não são gravadas, é como se algo estive dando um rollback. Simplesmente as informações não vão para o banco, será que o firebird tem problemas com dbgrid?
GOSTEI 0
Vinicius2k
09/06/2004
Jeferson,
Acho q o primeiro passo é saber se o banco está lhe retornando algum erro e já que vc está usando TClientDataSet, como ele não gera exceção se algo sair errado no ApplyUpdates, sugiro que vc trabalhe o evento OnReconcileError para pegar a mensagem de erro (E.Message), ou simplesmente faça uma rotina que verifique se houve algum erro, caso tenha havido vc cancela o Update assim:
Espero ter ajudado...
T+
Acho q o primeiro passo é saber se o banco está lhe retornando algum erro e já que vc está usando TClientDataSet, como ele não gera exceção se algo sair errado no ApplyUpdates, sugiro que vc trabalhe o evento OnReconcileError para pegar a mensagem de erro (E.Message), ou simplesmente faça uma rotina que verifique se houve algum erro, caso tenha havido vc cancela o Update assim:
if ClientDataSet1.ApplyUpdates(-1) > 0 then begin //houve um erro... tratá-lo aqui... ClientDataSet1.CancelUpdates; end;
Espero ter ajudado...
T+
GOSTEI 0