Query - Posição de registro
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
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
Curtidas 0
Respostas
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
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
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
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
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
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.
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
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
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
06/11/2003
zimprez...
Query1.RecNo
ou ADOQuery1.RecNo
isso retorna o numero do record atual
Query1.RecNo
ou ADOQuery1.RecNo
isso retorna o numero do record atual
GOSTEI 0
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
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