Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rogerio_pavan

Pesquisar no banco de dados

Recommended Posts

Eu queria fazer uma procura no banco de dados conforme vou digitando. Por exemplo:tenho um edit que recebe o Nome do Cliente, e ao ir digitando o Nome do Cliente no edit, eu queria q o sistema ja retornasse(sugerisse) algum nome de Cliente que o banco de dados ja tem gravado.i

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia...

rogerio_pavan, pode ser feito algo do tipo:

private	{ Private declarations }	FStr : String;  public	{ Public declarations }  end;var  Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);begin	 FStr := '';end;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);var   zqryAux : TZQuery;   sEdit   : String;   sStr	: String;begin	 if not (Word(Key) = VK_BACK)   and		not (Word(Key) = VK_RETURN) and		not (Word(Key) = VK_DELETE) then	 begin		  Edit1.Text := Copy(Edit1.Text, 1, Pos(FStr, Edit1.Text)+Length(FStr)-1);		  FStr	   := Edit1.Text + Key;		  sEdit	  := Edit1.Text + Key;		  zqryAux	:= TZQuery.Create(nil);		  try			 with zqryAux do			 begin				  Connection := ZConnection1;				  SQL.Add('SELECT NOME'		);				  SQL.Add('  FROM TBL_USUARIO' );				  SQL.Add(' WHERE NOME LIKE '+''''+sEdit+'%'+'''');				  Open;				  First;				  if RecordCount <> 0 then				  begin					   Key			:= #0;					   sStr		   := FieldByName('NOME').AsString;					   Edit1.Text	 := sStr;					   Edit1.SelStart := Length(sEdit);				  end;				  Close;			 end;		  finally			 zqryAux.Free;		  end;	 end;end;procedure TForm1.Edit1Exit(Sender: TObject);begin	 FStr := '';end;

soh tem um pequeno problema: não consegui fazer selecionar o resto do texto não digitado pelo usuário.... mas funciona...

não sei se esse procedimento poderia deixar lento a pesquisa se nessa tabela de usuários tiver muitos registros....

 

qualquer dúvida posta ai :D e se funcionar e tu, ou alguem, conseguir selecionar o texto posta ai tb que eu gostaria de ver como faz :D ...

 

ps.: utilizo o D5, banco PostgreSQL e componentes Zeos...

ps2.: do jeito que está... sempre que sair do edit1 e quiser reconsultar, tem que apagar todas informações do edit1.... pode cctza ser melhorado isso....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.