Fórum Consulta Aparecer no DBGrid #287490
08/07/2005
0
Estou tentando fazer uma consulta onde ao começar digitar no Edit ja vai aparecendo no DBGrid. Fiz com esse codigo mas o resultado da pesquisa so aparece ao click no botaum. Como faria para a consulta ficar automatica no Edit.
Agradeço desde já.
procedure TFrmConsutaEditora.BitBtnOKClick(Sender: TObject); var ConsultaEditora: String; begin ClientDataSetConEdt.Close; ConsultaEditora:= ´Select Nome from EDITORA where ´; ConsultaEditora:= ConsultaEditora + ´Nome like ´´´+EdtConsultaNome.Text+´¬´´´; try Transacao.TransactionID := 1; Transacao.IsolationLevel := xilREPEATABLEREAD; DM.SQLConnection1.StartTransaction(Transacao); DM.SQLQueryConEdt.Close; DM.SQLQueryConEdt.SQL.Clear; DM.SQLQueryConEdt.SQL.Append(ConsultaEditora); DM.SQLQueryConEdt.Open; DM.SQLConnection1.Commit(Transacao); IF DM.SQLQueryConEdt.IsEmpty then Begin MessageDlg(´Editora não encontrada!´,mtInformation,[mbOK],0); end; except on Exc:Exception do begin ShowMessage(´Ocorreu um erro na consulta: ´ + Exc.Message); DM.SQLConnection1.Rollback(Transacao); end; //do except end; //do try ClientDataSetConEdt.open; end; procedure TFrmConsutaEditora.EdtConsultaNomeKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if not DM.SQLTable1.Active then begin try DM.SQLTable1.Open; DM.SQLTable1.Locate(´Nome´,varArrayof([EdtConsultaNome.Text]),[LopartialKey]); except ShowMessage(´Oops´); end; end; end;
Agradeço desde já.
_celo
Curtir tópico
+ 0
Responder
Posts
08/07/2005
Joaoshi
Colega,
Seguindo a sua ideia, você deveria colocar a pesquisa no OnChange do Edit.
E daria o Select no banco apos o usuario digitar uma ou duas letras, ai você daria o primeiro Select:
Após abrir a consulta você daria um LOCATE a medida em que novas teclas fossem digitadas.
Espero ter ajudado.
Seguindo a sua ideia, você deveria colocar a pesquisa no OnChange do Edit.
E daria o Select no banco apos o usuario digitar uma ou duas letras, ai você daria o primeiro Select:
if Length(Edit1.Text) > 1 then ConsultaEditora := ´Select Nome from EDITORA where Nome like .....
Após abrir a consulta você daria um LOCATE a medida em que novas teclas fossem digitadas.
ConsultaEditora.Locate(´NOME´,Edit1.Text,[])
Espero ter ajudado.
Responder
Gostei + 0
08/07/2005
_celo
Valeu cara ficou muito bom.
Muito obrigado
:)
Muito obrigado
:)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)