PDA

View Full Version : جستجو در Query به این روش...



کامروا
جمعه 10 شهریور 1391, 13:42 عصر
سلام

یک ADOQuery دارم که به یک DataSource وصله و DataSource هم به DBGrid

یک Edit هم دارم که میخوام عملیات جستجو در ADOQuery رو انجام بده.

حالا میخوام وقتی عملیات جستجو انجام میشه، ADOQuery فیلتر نشه و فقط سطر پیدا شده رو نشون نده، بلکه فقط اون سطری که پیدا شده HighLight و فوکس بشه(درون DbGrid).

ممنون میشم راهنمایی کنید

تشکر

Felony
جمعه 10 شهریور 1391, 13:52 عصر
متد Locate از Dataset مورد نظر عملیات جست و جو رو بر روی فیلد(های) مورد نظر انجام میده و کرسر رو به اولین رکورد مطابق با شرایط جست و جو منتقل میکنه .

کامروا
شنبه 11 شهریور 1391, 20:57 عصر
میخوام که از طریق یک ادیت، هم توی فیلد id سرچ کنه و هم توی فیلد name

اما خطا میده چون وقتی حروف وارد میکنم و میخواد توی فیلد آیدی سرچ کنه خطا میده که این رشته است و نمیشه توی عدد صحیح جستجو بشه

اینم کد :


if Edit1.Text <> '' then
begin
if mTableEh.Locate('id',Edit1.Text,[]) then
else
if mTableEh.Locate('name_khanevadegi',Edit1.Text,[]) then
end;


آیا راه حلی دارید؟

تشکر

سعید صابری
شنبه 11 شهریور 1391, 22:03 عصر
یادمه از Mydac استفاده می کردی!هیچ گونه مشکلی نداره چه عدد وارد کنید چه رشته

if MyTable1.Locate('id',55255,[]) then

کامروا
شنبه 11 شهریور 1391, 22:35 عصر
آره از MyDac استفده میکنم اما واسه نمایش توی Ehlib باید از MemTabelEh استفاده کنم.
MemTableEh به MyQuery متصل هست.
اما MemTable هست که اطلاعات رو میخونه...

پس دستور فوق نباید جواب بده قاعدتا...

در ضمن میخوام Edit1 توی دوتا فیلد سرچ کنه.

Felony
شنبه 11 شهریور 1391, 23:46 عصر
آیا راه حلی دارید؟
اصولا خودش این جور موارد رو باید به صورت خودکار Typecast کنه ، حالا اگر نمیکنه شما یه زحمت بکش یه StrToInt برای Edit ت بزن !

if Trim(Edit1.Text) <> '' then
begin
if mTableEh.Locate('id',StrToInt(Edit1.Text),[]) then
else
if mTableEh.Locate('name_khanevadegi',Edit1.Text,[]) then
end;

Mahmood_M
دوشنبه 20 شهریور 1391, 12:08 عصر
if Locate('ID;name_khanevadegi', VarArrayOf([StrToInt(Edit1.Text), Edit1.Text]), []) then

کامروا
دوشنبه 20 شهریور 1391, 12:46 عصر
if Locate('ID;name_khanevadegi', VarArrayOf([StrToInt(Edit1.Text), Edit1.Text]), []) then
ID : Integer
name_khanevadegi : VarChar
______________________
وقتی حروف تایپ میکنم با خطای :


'ف' Is not a valid integer value

روبرو میشم !

و ID که وارد میکنم هیچ اتفاقی نمیفته !

Mahmood_M
دوشنبه 20 شهریور 1391, 16:41 عصر
چون شما دارید از یک Edit برای جستجو در دو فیلد با نوع های متفاوت استفاده می کنید
دلیل این کار چیه ؟ ، همزمان ممکن نیست که در Edit شما هم یک مقدار عددی وجود داشته باشه که قابل قبول برای فیلد ID باشه و هم درونش حروف باشه !
چرا از "یک" Edit استفاده می کنید ؟

کامروا
دوشنبه 20 شهریور 1391, 16:45 عصر
خب میخواستم مثل Search Footer در کامپوننت TMS Grid که یک Edit داره و در تمام فیلد ها سرچ میکنه رو درست کنم.
شما نظر بدید ...