Pesquisa e deslocamento: LOCATE, GOTOKEY OU FINDKEY

Delphi

16/02/2005

Boa Noite Amigos

Preciso fazer uma leitura em uma tabela X, de um campo não chave, com indice secundario, mas neste momento eu que estou fazendo uma inclusão na mesma tabela. Por isso não posso usar o comando LOCATE pois este deslocaria a tabela para a primeira ocorrência encontrada.
Gostaria de saber qual o comando que uso para que seja possível apenas
verificar se o registro já existe ou não, sem deslocar no registro encontrado.

Entendo que todos os comandos de pesquisa deslocam na tabela, certo?

Muito Obrigado

Alex


Alexsandro

Alexsandro

Curtidas 0

Respostas

Buosinet

Buosinet

16/02/2005

Se você estiver usando o ClientDataSet, pode criar um segundo ClientDataSet, clone do primeiro, com o método ´CloneCursor´. Aí vc pode dar locate no segundo, e o primeiro fica parado. Mas qualquer operação no segundo (Edit, Insert, Post, Cancel) reflete no primeiro, portanto, cuidade.


GOSTEI 0
Alexsandro

Alexsandro

16/02/2005

Gostei de sua idéia amigo. Gostaria de saber se eu usar uma query também não afeta o primeiro dataset, ou seja, continuo na inclusão.

Obrigado,

Alex


GOSTEI 0
Gandalf.nho

Gandalf.nho

16/02/2005

Gostaria de saber se eu usar uma query também não afeta o primeiro dataset, ou seja, continuo na inclusão.


Pode usar outro dataset normalmente.


GOSTEI 0
Buosinet

Buosinet

16/02/2005

A forma de carga dos dados é indiferente, o que você não pode fazer é dar insert, edit, post e cancel no segundo ClientDataSet, pois estas operações afetam o primeiro.

Veja no Help do Delphi o método CloneCursor, é bem claro...

Boa Sorte,
Buosi


GOSTEI 0
Alexsandro

Alexsandro

16/02/2005

Meus Amigos,

Estou usando um Data Module. Logo, no meu FORM eu não tenho nenhum DATASET ou TABLE. Vocês estão sugerindo que eu simplesmente coloque um DATASET no meu FORM, somente para usar o LOCATE? Dessa forma isso não vai deslocar o outro DATASET do DATA MODULE?

Legal, agradeço a sua confirmação.

Alex


GOSTEI 0
Alexsandro

Alexsandro

16/02/2005

SOBE


GOSTEI 0
POSTAR