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