Помогите с функцией поиска в БД
Доброе утро друзья. Уже 3 день пытаюсь разобраться с функцией поиска в таблице через ADO. на форме расположены следующие компоненты :
· TDBGrid · TDataSource · TADOConnection · TADOQuery У меня есть BD Access подключенная к моей программе через ADO так вот основные функции по работе в моей программе уже работают а вот поиск не могу понять как сделать. вот код procedure TForm1.Edit4Change(Sender: TObject); begin ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT *'); ADOQuery1.SQL.Add('FROM logon'); ADOQuery1.SQL.add('WHERE Name like''' +'%'+Edit4.Text + '%'''); ADOQuery1.Active:=true; end; В результате должно получиться фильтрация по мере ввода в TEdit4 а вместо этого выдается ошибка : Вот весь код моей программы: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, DBClient, ExtCtrls; type TForm1 = class(TForm) DBGrid1: TDBGrid; DataSource1: TDataSource; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; Edit1: TEdit; Edit2: TEdit; Button1: TButton; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Button2: TButton; Button3: TButton; Button4: TButton; Edit4: TEdit; Label4: TLabel; Button5: TButton; ADODataSet1: TADODataSet; Panel1: TPanel; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Edit4Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} {----------------------ADD String ------------------------------} procedure TForm1.Button1Click(Sender: TObject); begin try if (Trim(Edit1.Text)='') or (Trim(Edit2.Text)='')or (Trim(Edit3.Text)='') then exit; ADOQuery1.Insert; ADOQuery1.FieldByName('Login').AsString:=Edit1.Text; ADOQuery1.FieldByName('P@ssword').AsString:=Edit2.Text; ADOQuery1.FieldByName('URL Adress').AsString:=Edit3.Text; Edit1.Clear; Edit2.Clear; Edit3.Clear; except on e:Exception do end; end; {-------------------------DEL---------------------------------------------} procedure TForm1.Button2Click(Sender: TObject); begin try if Application.MessageBox('Delete?','ADO',MB_YESNO)=IDYES then begin ADOQuery1.Delete; end; except on e:Exception do end; end; {------------------------EDIT------------------------------} procedure TForm1.Button3Click(Sender: TObject); begin try ADOQuery1.Edit; ADOQuery1.FieldByName('Login').AsString:=Edit1.Text; ADOQuery1.FieldByName('P@ssword').AsString:=Edit2.Text; ADOQuery1.FieldByName('URL Adress').AsString:=Edit3.Text; except on e:Exception do end; ADOQuery1.Post; end; {------------------------Save----------------------------------} procedure TForm1.Button4Click(Sender: TObject); begin try ADOQuery1.Active:=True; ADOQuery1.Post; except on e:Exception do end; end; procedure TForm1.Edit4Change(Sender: TObject); begin ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT *'); ADOQuery1.SQL.Add('FROM logon'); ADOQuery1.SQL.add('WHERE Name like''' +'%'+Edit4.Text + '%'''); ADOQuery1.Active:=true; end; {----------------------Create-------------------------------------} procedure TForm1.FormCreate(Sender: TObject); begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT * FROM logon'); ADOQuery1.Active:=True; end; end. |
Все разобрался !!! Тема закрыта
|
Время: 13:15. |
Время: 13:15.
© OSzone.net 2001-