Fórum Query - Posição de registro #193224
06/11/2003
0
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
Curtir tópico
+ 0Posts
06/11/2003
Rodrigo Costa
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
06/11/2003
Wbb
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
06/11/2003
Wbb
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
06/11/2003
Rodrigo Costa
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
06/11/2003
Wbb
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
06/11/2003
Brnz
Query1.RecNo
ou ADOQuery1.RecNo
isso retorna o numero do record atual
Gostei + 0
06/11/2003
Wbb
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
Clique aqui para fazer login e interagir na Comunidade :)