Re: [firebase-br] IBO - Deixar o dataset posicionado no último registro gravado

RedDevil reddevil em reddevil.eti.br
Sáb Dez 3 03:27:50 -03 2005


ola Andrei Luís,

apos ler as respostas que o Set e a Helen te deram na lista IBO Support, 
eu fiz alguns testes e a conclusao a qual eu cheguei eh a de que se a 
gente definir BufferSynchroFlags = [bsAfterEdit, bsAfterInsert] (eu 
suponho que voce esta brincando com esse lance ae para conseguir uma 
melhor sincronizaçao de buffer entre o client e o server...;o) como voce 
fez, e ir dando apenas: "IB_QueryX.Post;", sem commitar, conforme o 
exemplo que voce colocou la na roda, basta fazer como o João Henrique te 
falou, deixar a propriedade CommitAction como "caInvalidateCursor", que 
o ponteiro vai ficar sempre no registro que a gente acabou de incluir, 
independentemente de quantos registros forem incluidos, e somente quando 
a gente der um Commit eh que o(s) registro(s) incluido(s) durante a 
Transaçao ira(ao) para o(s) seu(s) devido(s) "lugar(es)", conforme a 
IB_Query esta ordenada, e o ponteiro retornara para o registro no qual 
estava posicionado antes de a gente dar o(s) Insert(s), de a gente 
incluir o(s) novo(s) registro(s)... para evitar isso, basta fazer 
conforme o Set te falou, colocar a propriedade RefreshAction da IB_Query 
como "raKeepDataPos", que entao, quando a gente dar o Commit e o(s) 
registro(s) recem incluido(s) entrar(em) na sua ordem conforme a 
IB_Query esta ordenada, o ponteiro acompanhara o ultimo registro que foi 
incluido, e assim nao ficara posicionado no registro que estava antes 
do(s) Insert(s)...

na boa, eu tentei de tudo, tentei ate deixar a propriedade AutoCommit do 
IB_Transaction como True, conforme a Helen mencionou, mas nao consegui 
fazer acontecer esse problema que voce mencionou...

a nao ser que apos o Post voce estivesse dando um Commit ou voce tenha 
alterado alguma outra propriedade e nao mencionado essa alteraçao nos 
posts que voce fez...

eu te pediria que, se nao for muito incomodo, voce postasse ae na lista 
como ficou a tua historia, para dar uma força para o search, se alguem, 
algum dia, se deparar com alguma dificuldade semelhante, okeyz?


[]s
força sempre!!!
ate +++

-- 
Luiz "RedDevil" Stefanski - Linux User #399026
http://www.RedDevil.eti.br - Delphi 4 Powered by IBObjects
exemplos e dicas sobre o IBObjects:
http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165
compilaçao/instalaçao do IBObjects sabor BPG:
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630


Post By Andrei Luís:
> Não funcionou.
> 
> []
> Andrei
> 
> Em 02/12/05, João Henrique de Souza<joao.henrique em jvsind.com.br> escreveu:
> 
>>Olá...
>>
>>Basta mudar a propriedade CommitAction para caInvalidateCursor.
>>
>>[]´s
>>João Henrique
>>
>>----- Original Message -----
>>From: "Andrei Luís" <compuvale.software em gmail.com>
>>To: "Firebase" <lista em firebase.com.br>
>>Sent: Friday, December 02, 2005 8:33 AM
>>Subject: [firebase-br] IBO - Deixar o dataset posicionado no último registro
>>gravado
>>
>>
>>Bom dia,
>>
>>Estou com um pequeno problema:
>>
>>Se deixo meus ib_querys com  BufferSynchroFlags = [bsAfterEdit,
>>bsAfterInsert], após um .post, o ponteiro fica no registro que estava
>>antes do .insert.
>>
>>Pensei em utilizar Bookmarks como usava com os TTable e TQuery, mas
>>não entendi como funcionam no IBO.
>>
>>Alguem poderia dar uma luz ou uma outra direção?
>>
>>[]s
>>Andrei
>>
>>W2K + D4 Pro + FB 1.5.2 + IBO 4.5B





Mais detalhes sobre a lista de discussão lista