Problema com IBTable/ITRansaction

Firebird

06/12/2005

Coloco registros em uma ibtable, se eu usar o ibtransaction.commit, as 7 primeiros campos são preenchidos, os demais ficam com null, se não utilizar o ibtransaction.commit, todos os campos e registros aparecem, porém quando fecho o arquivo e abro novamente, o primeiro registro fica em branco e os restantes só são gravados os 7 primeiros campos!
Alguém já viu algo assim?


Edilcimar

Edilcimar

Curtidas 0

Respostas

Thomaz_prg

Thomaz_prg

06/12/2005

Nunca vi nada assim, mas, me responde uma coisa, você tá usando IBX + DataSetProvider + ClientDataSet ???
Se for, verifique se não estão ocorrendo erros a partir de determinado arquivo (grava tudo o que puder e descarta o que tiver erro quando se usa -1 como parâmetro para o applyupdates).


GOSTEI 0
Edilcimar

Edilcimar

06/12/2005

estou usando ibtable, ibtransaction e ibdatabase


GOSTEI 0
Edilcimar

Edilcimar

06/12/2005

Seguem imagens do problema, o dbgrid superior é só para mostrar o que está acontecendo com a tabela

Imagem utilizando o commit, antes de fechar o form e depois da reabertura do mesmo
[img][URL=http://img205.imageshack.us/my.php?image=comcommitantesfecharedepoisabe.jpg][img:2a1d2893b5]http://img205.imageshack.us/img205/971/comcommitantesfecharedepoisabe.th.jpg[/img:2a1d2893b5][/URL][/img]

Imagem sem utilização do commit, antes de fechar o form
[img][URL=http://img205.imageshack.us/my.php?image=semcommitantesfechar7jb.jpg][img:2a1d2893b5]http://img205.imageshack.us/img205/5628/semcommitantesfechar7jb.th.jpg[/img:2a1d2893b5][/URL][/img]

Imagem sem utilização do commit, após reabertura do form
[img][URL=http://img205.imageshack.us/my.php?image=semcommitapsreaberturadoform5r.jpg][img:2a1d2893b5]http://img205.imageshack.us/img205/6403/semcommitapsreaberturadoform5r.th.jpg[/img:2a1d2893b5][/URL][/img]

Apesar da imagem pequena, dá para notar os campos em branco no dbgrid superior


GOSTEI 0
Thomaz_prg

Thomaz_prg

06/12/2005

Tente fazer o seguinte (se já não estiver):

No transaction...
Dê 2 cliques e defina como ReadCommited...

E, após abrir o IBTable tente colocar IBTable.FetchAll;

PS: De preferência, coloque 1 Transaction (Exclusivo) para cada IBTable.


GOSTEI 0
Edilcimar

Edilcimar

06/12/2005

thomaz, não adiantou nada


GOSTEI 0
Thomaz_prg

Thomaz_prg

06/12/2005

Se possível, você me mandar apenas o código que não está funcionando, e seu banco de dados, pra eu dar uma olhada...

thomazs@ufac.br


GOSTEI 0
Edilcimar

Edilcimar

06/12/2005

enviei um pedaço do código, se vc tiver meesenger fica mais fácil


GOSTEI 0
Edilcimar

Edilcimar

06/12/2005

as imagens sumiram, eis os links, a parte importante é o dbgrid de cima, onde dá para ver que tem campos preenchidos e campos em branco

sem commit antes de fechar

sem commit após reabertura

com commit, antes e depois


GOSTEI 0
Edilcimar

Edilcimar

06/12/2005

não sei porque as imagens somem do forum





GOSTEI 0
Eniorm

Eniorm

06/12/2005

(sugestão)
defina o IBTransaction (dois cliques) e escolha ReadCommited
e... ao invés de usar IBTransaction.Commit, use IBTransaction.CommitRetaining;

testa e veja como sai...


GOSTEI 0
Edilcimar

Edilcimar

06/12/2005

já estava como readcommited, e como era de se esperar commitretaining não faz a mínima diferença!


GOSTEI 0
Edilcimar

Edilcimar

06/12/2005

É, não teve solução, tive que tirar a ibtable e uilizar um table do piradox


GOSTEI 0
Gandalf.nho

Gandalf.nho

06/12/2005

Não tentou usar usar um IBDataset ao invés do IBTable? Já que componentes do tipo Table não são recomendados para bancos cliente/servidor?


GOSTEI 0
Edilcimar

Edilcimar

06/12/2005

não tentei, aqui preciso da tabela inteira pois são duas uma com os produtos e outra com as etiquetas a serem impressas


GOSTEI 0
Gandalf.nho

Gandalf.nho

06/12/2005

Mas vc pode mostrar a tabela inteira, basta um simples SELECT * FROM tabela


GOSTEI 0
Edilcimar

Edilcimar

06/12/2005

o problema é está ocorrendo é exatamente com a ibtable de etiquetas, onde eu estou incluindo as etiquetas e quantidades desejadas para serem impressas ao término da operação


GOSTEI 0
POSTAR