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.

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

_celo

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:
 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

:)


Responder

Gostei + 0

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

Aceitar