Edit + Dbgrid

Delphi

01/07/2013

Pessoal, boa noite!!!

Tenho um edit e um combobox, seleciono o indice no combobox e digito no edit para trazer os dados no dbgrid, o indice do codigo funcionou normal, mais o nome e o usuario quando digito a letra no edit para pesquisar me retorna um erro, não consigo solucionar.

Mensagem de erro:

.exe raised exception EOleException white message Line1:Incorrect syntax near CONTAINING".Process stopped.Use Step or run continue.

Abaixo o meu codigo fonte.







unit U_Pesquisa_Funcionarios;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, ExtCtrls;

type
TFrm_Pesquisa_Funcionarios = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Dbg_Pesquisa_Funcionarios: TDBGrid;
ADODataSet1: TADODataSet;
DataSource1: TDataSource;
Edit1: TEdit;
ComboBox1: TComboBox;
Label1: TLabel;
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Frm_Pesquisa_Funcionarios: TFrm_Pesquisa_Funcionarios;
var
comando: string;


implementation


{$R *.dfm}

procedure TFrm_Pesquisa_Funcionarios.Edit1Change(Sender: TObject);
begin

begin
Comando := SELECT * FROM Cad_Funcionarios ;

if Trim(Edit1.Text) then
begin
case ComboBox1.ItemIndex of
0: Comando := Comando + WHERE Codigo = + IntToStr( StrToIntDef(Edit1.text, -1) );
1: Comando := Comando + WHERE Nome CONTAINING + QuotedStr( Edit1.text);
2: Comando := Comando + WHERE Usuario CONTAINIG + QuotedStr( Edit1.text);
end;
end;


ADODataSet1.Close;
ADODataSet1.CommandText:=comando;
ADODataSet1.Open;
end;
end;
Bruno Henrique

Bruno Henrique

Curtidas 0

Respostas

Maxiwel Rodrigues

Maxiwel Rodrigues

01/07/2013

Faz isso mano

Busca no combobox – Botão lozalizar

if (cbbusca.Text <> EmptyStr) and (edtbusca.Text<> EmptyStr) then
begin
dm.cdsmdiario.Filter:=cbbusca.Text+ ' like '+ QuotedStr(edtbusca.Text+'%');
dm.cdsmdiario.Filtered:=True;
end;

coloque no do formulário corrente (Oncreate)

var
i:Integer;
begin
for i:= 0 to Pred(dm.cdsmdiario.FieldCount)do
begin
if dm.cdsmdiario.Fields[i].DataType in [ftstring,ftwidestring,ftfixedchar] then
cbbusca.Items.Add(dm.cdsmdiario.Fields[i].FieldName);

end;
end;

GOSTEI 0
POSTAR