Fórum Posicionar Query #183932

24/09/2003

0

Olá Pessoal,

Tenho uma query de clientes aberta, o usuário faz uma procura e eu executo
em uma query auxiliar, são apresentados 10 registro por exemplo, então nessa query, o
usuário escolhe um deles.

Como faço para posicionar o ponteiro da query de clientes no registro
escolhido na query auxiliar.

Se eu usar SELECT na query de clientes vou retornar apenas 1 registro e o
usuário não poderá navegar pelos outros registros.

Tentei utilizar o método LOCATE, mas como este método faz uma busca sequencial, se
for o último registro isso pode ser demorado.

Eu tentei usar a propriedade BookMark, mas não funciona, pois as querys têem que ser iguais,
senão irá apontar para outro registro.

Gostaria de saber qual seria a maneira mais rápida de posicionar o ponteiro
da query em um registro específico.

Muito obrigado.


Ndjei

Ndjei

Responder

Posts

24/09/2003

Mmtoor

Relacione as querys.
MMTOOR2003


Responder

Gostei + 0

26/09/2003

Ndjei

Então mmtoor....essa sugestão de linkar as querys foi muito interessante, fiz até um programa pra ter certeza, mas na verdade eu caio no mesmo problema...a query depois de linkada traz apenas o registro selecionado na outra, quando na verdade eu quero apenas posicionar no registro...

Obrigado mesmo assim e por favor se alguém tiver mais alguma sugestão agradeço...!!!!


Responder

Gostei + 0

26/09/2003

Marcelo.c

Tente da seguinte forma:

Logo depois de localizado o registro na QueryAux, armazene o código do Cliente, faça com que todos os registros sejam mostrados na QueryAux, execute um Locate utilizando o código armazenado, e posicione no mesmo registro a QueryCli.

Em código ficaria mais ou menos assim:

No evento Onclick do botão que fecha o formulário de procura:

var cod: Integer;
begin
  cod:=QueryAuxCodigo.Value;
  QueryAux.Close;
  QueryAux.SQL.Clear;
  //Exibindo os registros de QueryAux e obtendo mesma seq. de 
  QueryCli
  QueryAux.SQL.Add(´Select codigo from clientes´); 
  QueryAux.Open;
  QueryAux.Locate(´CODIGO´, cod, []); 
  //Posicionar QueryCli no mesmo registro da QueryAux
  QueryCli.Recno := QueryAux.Recno; 
end;
 


Como a QueryAux traz apenas um campo e não possui nenhum código embutido ou mesmo ligação com outras tabelas o Locate será muito mais rápido do que na QueryCli.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar