PDA

View Full Version : سلام با adoquery می خوام جستجو کنم ؟



hentjanson
جمعه 03 اسفند 1386, 11:19 صبح
سلام میشه بگبن با این فرمان چطور میشه جستجو کرد که بر جسب کلمه دقیق بگرده مثلا زدم ب تمام کلماتی که نامشون ب هست اولش رو بیاره و با کامل کردن کلمه اون کلمه رو بیاره .
تازه کارم
از دوستان تشکر
می دونم تکراری سوالم ببخشید

SYNDROME
جمعه 03 اسفند 1386, 12:45 عصر
اگر جستجو می کردی زودتر به جواب می رسیدی.


ADOQuery1.SQL.Text := 'Select * From Tbl_Test Where Name Like ''%'+ Edit1.Text +'%''';
ADOQuery1.Open;

موفق باشید

Amir_Safideh
جمعه 03 اسفند 1386, 12:50 عصر
ببین دوست عزیز یه مثال ساده برات بزنم .
فرض میکنیم که شما یه ADOQuery داری که سه تا فیلد رو از یه جدول نمایش میده که از این سه تا فیلد یه فیلد مربوط به اسامی دانشجویان یک دانشگاه ست . حالا ما تصمیم داریم که زمانی که ما در یک Edit هر چی رو که تایپ میکنیم در جدول اسامی رو که در حرف یا حروف اول شبیه هستن رو نمایش بده .
خوب قدم اول نوشتن دستور Select مربوط به ADOQuery است . خوب دستورش رو اینجوری مینویسیم :

Select DName,DNumber,DAddress
From Daneshjo
Where DName Like :@Name+'%'
خوب این کد رو در خاصیت SQL مربوط به ADOQuery بنویس .
خوب حالا ما باید کوئری رو اجرا کنیم .
گفتیم که زمانی که کاربر توی یک Edit یه اسم رو وارد میکنه ما میخواهیم که جستجو براساس کاراکترهای نوشته شده انجام بشه پس ما باید یک کنترل Edit روی فرم بزاریم و در رویداد OnChange مربوط به این Edit این کد رو بنویسیم :

procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text = '' then
Exit
else
begin
with ADOQuery1 do
begin
Close;
Parameters.ParamByName('@Name').Value := Trim(Edit1.Text);
SQL;
Open;
end;
end;
end;

خوب حالا با هر بار تایپ کردن توی این Edit میبینید که لیست اسمها بر اساس کلمات تایپ شده چیده میشه .
موفق باشید .

dkhatibi
جمعه 03 اسفند 1386, 15:17 عصر
ADOQuery1.SQL.Text := 'Select * From Tbl_Test Where Name Like +''' Edit1.Text +'%''';
ADOQuery1.Open;
فقط در صورتیکه می خوای اولشون با اون حرف شروه بشه کد بالا جواب می ده