Fórum Não consigo gravar alterações em registros!!! #58501
07/07/2007
0
Estou desenvolvendo uma aplicação e estou com o seguinte problema: não consigo registrar na base de dados alterações que faço via formulário. Utilizo componente da paleta Interbase para acessar um banco de dados Firebird 2.0: um DataBase, um Transaction e DataSet´s em um DataModule, utilizo ainda DataSource´s nos formulário para mostrar os dados. As operações de Insert/Delete/Edit/Post, são todas realizadas diretamente no DataSet que, já possui todas as instruções Sql geradas pelo próprio componente e nos eventos After Post/Edit/Delete possui a instrução de CommitRetaining para o Transaction, que possui a mesma característica já setada. Inserir é tranquilo, grava sem problemas, o problema é que quando vou fazer alguma alteração, ela só aparece quando estou com o DataSet aberto, assim que o desativo e o ativo de novo, as alterações não foram registradas, mesmo dadndo commitretaining o tempo todo...
O que posso estar fazendo de errado... agradeço qualquer ajuda...
Scorpionjr
Curtir tópico
+ 0Posts
08/07/2007
Rodolpho123
Qual é a versão do IBX que vc está usando? Recentemente eu tive problemas com os componentes de acesso IBX. O problema foi tão grave que me obrigou a mudar de componente de conexão. Vou relatar a minha experiência com IBX:
-» Em todas as minhas aplicações, eu costumo a utilizar ClientDataSet´s. Porém, ao tentar trabalhar com a estrutura Cds/DataSetProvider/IBQuery/IBDataBase, não conseguia de jeito nenhum a realização do método AppyUpdates, pois gerava-me um erro de Parse no IBQuery. Procurei na web e descobri que a versão do IBX que vem junto com o D7 (7.1 se eu não estou enganado) contém este bug e a recomendação foi atualizar a versão do IBX (7.5). Fiz conforme indicado e tudo funcionou perfeitamente, porém, esta semana descobri que o componente IBTransaction está bugado para esta versão. Em uma máquina eram aplicado as alterações no bd, COMITADAS porém as outras aplicações não enxergavam as alterações, apenas na máquina em que ocorreu o fato. Mesmo co a minha configuração do IBTransaction estando configurada para [b:d4481831cc]read commited[/b:d4481831cc] esses dados somente eram vizuializados por outras máquinas quando a conexão é fechada. Fiz vários testes utilizando a ferramenta do FB (isql) e o probleme perssistiu. E o pior, é que acontece aleatóriamente.
Bem, verifique se o seu IBTransaction está configurado para read_commited e faça seus testes. Caso persista, eis a minha opinião...
Gostei + 0
08/07/2007
Scorpionjr
Eu já deixo o Transaction com a Read-Commited setado e mesmo assim as alterações não são registradas no BD, além do fato de mandar comitar sempre que uma operação de gravação, deleção ou edição é realizada, além de quando o formulário é fechado. Fui dar uma verificada na versão dos componentes IBX e verifiquei que a que uso é 7.0.4.453, não sei se esta também possui os erros que vc citou e, caso sim, onde encontro uma atualização para esse componente? Vai que resolve meu problema...
Me indicaram também que eu fizesse o acesso ao banco por meio dos componentes do FibPlus, que parecem já possuir um controle de transações mais elaborado que os do Ibx...
Um abraço a todos...
Gostei + 0
09/07/2007
Martins
Só não está gravando as suas edições de registro é isso?
Como está seu código?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)