Query - Posição de registro

Delphi

06/11/2003

Pessoal,

Após fazer uma pesquisa num banco de dados, localizo uma quantidade X de registros (27 por exemplo). Ok!. Movendo-se pelos registros encontrados e supondo que esteja no registro 12 (por exemplo) eu preciso saber como identificar que o registro atual é o registro 12 da lista de registros encontrada na pesquisa.

Usando componente Query ou então o ADOQuery, como faço para saber em qual registro estou num determinado momento?

Grato.
wbb


Wbb

Wbb

Curtidas 0

Respostas

Rodrigo Costa

Rodrigo Costa

06/11/2003

procedure TForm1.Button1Click(Sender: TObject);
var ponteiro:pointer;
begin
        {Pega o id do registro}
        ponteiro:=adoquery1.GetBookmark;

        {Move para o id especificado}
        adoquery1.GotoBookmark(ponteiro);
end;

end.



GOSTEI 0
Wbb

Wbb

06/11/2003

Rodrigo,

Não cheguei a tentar da maneira que você indicou, mas consegui fazer assim:
X := Query.FieldbyName(´CAMPO´).AsInteger;

Onde X é a posição de registro em que me encontro.

De qualquer forma, obrigado pela atenção.
wbb


GOSTEI 0
Wbb

Wbb

06/11/2003

Rodrigo,

Não cheguei a tentar da maneira que você indicou, mas consegui fazer assim:
X := Query.FieldbyName(´CAMPO´).AsInteger;

Onde X é a posição de registro em que me encontro.

De qualquer forma, obrigado pela atenção.
wbb


GOSTEI 0
Rodrigo Costa

Rodrigo Costa

06/11/2003

ok, mas assim vc apenas está pegando o conteúdo deste campo neste registro.

Se este campo não for chave primária ou um campo unique_constrant ou ainda um campo de auto-incremento nao irá identificar seu registro unicamente pois o valor poderá se repetir em outros registros.


GOSTEI 0
Wbb

Wbb

06/11/2003

É verdade Rodrigo.
Você tem razão!

Eu fiz mais testes com a outra forma e realmente não resolve.
Daquela forma (X := Query.FieldbyName(´CAMPO´).AsInteger;) o número de posição que era retornado era o da lista total de registros contidos no banco de dados. No caso, o campo utilizado como referência era mesmo um campo de auto-incremento como você disse. E não é isso que preciso.

Da forma como você indicou também não consegui fazer funcionar, pois se entendi corretamente o que seu código faz é marcar uma posição de registro para poder retornar a ela depois. O que eu preciso é saber qual é o número sequencial do registro atual dentro da lista de registros encontrada através da pesquisa que fiz. No exemplo que dei seria o seguinte:
Feita uma pesquisa no banco de dados, foram encontrados 27 registros. Assim, estou considerando que o registro 1 (do total de 27) é o registro de número 1 da lista de registros encontrados. O registro 27 é o último e seu número de referência é 27 obrigatoriamente.

Minha pergunta é: Ao mover-se por entre os 27 registros, como saber qual é o registro em que me encontro num determinado momento?


Valeu!
wbb


GOSTEI 0
Brnz

Brnz

06/11/2003

zimprez...

Query1.RecNo

ou ADOQuery1.RecNo

isso retorna o numero do record atual


GOSTEI 0
Wbb

Wbb

06/11/2003

Putz.....
Mais fácil que isso impossível heim Brnz? hehehe...
Obrigado por sua ajuda. Problema resolvido.

Obrigado ao Rodrigo também pela atenção.

wbb


GOSTEI 0
POSTAR