Table interbase = como dar um refresh?

Delphi

27/10/2004

Estou convertendo um programa que utilizava o paradox para o interbase.

A ideia é manter a programação o mais intocável possível, por causa do prazo que tenho para a conversão, ou seja, é BDE + TTable.

Para fazer o auto-incremental, utilizei generator´s com trigger´s.

Supondo que tenho um cadastro de clientes e um cliente pode possuir diversos endereços (comercial, residencial, correspondenci, etc.), quando incluo um cliente, eu não tenho o codcli do mesmo, pois a trigger é quem gera. Sendo assim, para passar o mesmo codcli para os endereços, eu tenho que dar um refresh na Table.

Só que quando eu dou um refresh, ela volta posicionada no primeiro registro do cadastro e não naquele que acabei de incluir.

Não adianta tentar utilizar o recno da table, pois ele sempre retorna -1.


Alguém sabe de uma fórmula mágica para resolver isso? :lol:

Obrigado.


Ronaldo

Ronaldo

Curtidas 0

Respostas

Rômulo Barros

Rômulo Barros

27/10/2004

[b:302787ad3a]Durante a insercao do registro mestre, guarde outros dados tais como o Nome, Idade, Cpf, Rg e, apos o Refresh, realize um Locate na Table Atraves dos campos armazenados (Nome,Idade,Cpf ...), utilizando para isso o VarArrayOf[] do Locate.[/b:302787ad3a]

:wink: :wink:


GOSTEI 0
Ronaldo

Ronaldo

27/10/2004

O locate, pelo menos no paradox, era muito lerdo se comparado com o findkey.

Com o interbase é a mesma coisa ou a performance é igual?

grato.


GOSTEI 0
Rômulo Barros

Rômulo Barros

27/10/2004

Amigo, no Paradox eu nunca utilizei :lol: Mas, no interbase, Firebird e Oracle eu sempre utilizo e a peformance é maravilhosa. :lol:


GOSTEI 0
POSTAR