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

Andrei Luís compuvale.software em gmail.com
Seg Dez 5 22:38:55 -03 2005


E ae Luiz,

Báh meu, que novela... Daquelas mexicanas, bem meladas.... e eu
detesto novela...

Bem, criei uma aplicação nova pra testar esse esquema, com o básico só
pra conectar um banco e alguns botões. Fiz o que me indicaram lá na
IBO Support, fiz o que me indicaram aqui, e nada funcionava. Nem a
história do bookmark que o João deu a dica...

Aí, pô, não pode ser que eu seja tão tapado assim, né?

Aí resolvi testar com o banco DragonEgg.FdB (conhece???) E voilá!!!
Tá, mas porque? Dei uma olhada no banco e vi que não tem triggers para
gerar o fake autoInc. Abri meu banco, desativei a trigger da tabela
que estava testando e voilá novamente!!!!!

Aí tô nessa: com a trigger que gera o meu autoInc não funciona, sem a
trigger funciona tudo, até o bookmark.

E agora fiquei com a "pulga atrás da ovelha": é um bug? Ou tem algo a
mais que precisa ser feito para usar trigger + essa história toda aí?

Alguém tem idéia?

[]
Andrei



Em 03/12/05, RedDevil<reddevil em reddevil.eti.br> escreveu:
> 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