Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите с функцией поиска в БД (http://forum.oszone.net/showthread.php?t=235338)

streamrider 25-05-2012 10:38 1922243

Помогите с функцией поиска в БД
 
Доброе утро друзья. Уже 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.

streamrider 25-05-2012 17:17 1922549

Все разобрался !!! Тема закрыта


Время: 13:15.

Время: 13:15.
© OSzone.net 2001-