PDA

View Full Version : جستجو در یک متن چند صفحه ای در ارتباط با بانکAccess



Sahba Soft
جمعه 04 خرداد 1386, 19:20 عصر
در Access دیتا بیسی ایجاد کردم و یکی از فیلدهای آن را از نوع Memo انتخاب کردم بعد در دلفی از طریق ADO به دیتا بیس متصل شدم و وقتی با دستور Select کلمه را در فیلد Memo (که محتوی کی متن چند صفحه ای فارسی است) جستجو می کنم هیچ رکوردی بر نمی گرداند
ولی وقتی همین دستور Select رو در َAccess روی دیتابیس تست می کنم خیلی دقیق کار میکنه
در ضمن من برای جستجو در فیلد های معمولی مثل Text و Number و ... به هیچ مشکلی بر نخودم


این هم کدی که استفاده می کنم:

Sql ('SELECT * FROM [Index] where Text Like ''%'+ Edit_Text.Text + '%'' Order by Num,Page');
------------------------------------------------------------------
این هم پروسیجر Sql
procedure TFrm_Search.sql(Command : String);
begin
Edit1.Text:=Command;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(Command);
ADOQuery1.Open;
ADOQuery1.Active:=true;
end;
------------------------------------------------------------------

SYNDROME
جمعه 04 خرداد 1386, 20:02 عصر
با سلام

در Access دیتا بیسی ایجاد کردم و یکی از فیلدهای آن را از نوع Memo انتخاب کردم بعد در دلفی از طریق ADO به دیتا بیس متصل شدم و وقتی با دستور Select کلمه را در فیلد Memo (که محتوی کی متن چند صفحه ای فارسی است) جستجو می کنم هیچ رکوردی بر نمی گرداند
ولی وقتی همین دستور Select رو در َAccess روی دیتابیس تست می کنم خیلی دقیق کار میکنه
در ضمن من برای جستجو در فیلد های معمولی مثل Text و Number و ... به هیچ مشکلی بر نخودم


این هم کدی که استفاده می کنم:

Sql ('SELECT * FROM [Index] where Text Like ''%'+ Edit_Text.Text + '%'' Order by Num,Page');
------------------------------------------------------------------
این هم پروسیجر Sql
procedure TFrm_Search.sql(Command : String);
begin
Edit1.Text:=Command;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(Command);
ADOQuery1.Open;
ADOQuery1.Active:=true;
end;


------------------------------------------------------------------

Watch value مربوط به ADO.SQL.Text بگیر و آن را در Access تست کن.
دستور را هم به شکل زیر تغییر بده.


'SELECT *
FROM [Index]
where Text Like N ''%'+ Edit_Text.Text + '%'' Order by Num,Page');

shayan_delphi
جمعه 04 خرداد 1386, 20:23 عصر
Sql ('SELECT * FROM [Index] where Text Like ''%'+ QUOTEDSTR( Edit_Text.Text) + '%'' Order by Num,Page');
این کد را امتحان کن ببین درست میشه.