سلام
آیا دلفی دستوری هم داره که بشه باهاش عمل جستجو در جدول بدون دستورات SQL انجام داد؟
Printable View
سلام
آیا دلفی دستوری هم داره که بشه باهاش عمل جستجو در جدول بدون دستورات SQL انجام داد؟
سلام.
در شی ADO با دستور Locate می تونید این کارو کنید.
با دستور Filter هم می تونید محدودتر کنید.
اگه میشه یک نمونه کد بزارید
با اجازه جناب you-see
if ADOTable1.Locate('نام فیلد جستجو','مقدار جستجو',[]) then
begin
///code
/// code
end
else
ShowMessage('not found'');
beray F
ADOTable1.Filter:='field = '+'مقدار';
ADOTable1.Filtered:=True;
در فیل.ت شرط ها مانند sql و ... می باشد
داخل براکت نیاز نیست مقدار دهی بشه؟
اصلا اون برای چیه؟
داخل براکت برای اینه که این مقدار دقیقا وجود داره یا بخشی از مقدار اصلی هست؟
مثل لایک
بستگی به نیاز شما داره در کل 3 تا آپشن داره [loPartialKey] or [loCaseInsensitive] و []
که از اسمشون مشخصه هر کدام
[]خالی جستجوی دقیق یعنی برابر با مقدار جستجوی شما از هم لحاظ
سلام.
دستور كلي
[o] Table1.Locate('Field1', VarArray, [loPartialKek, loCaseInsensitive]); [o]
مثال
[o] MyTable.Locate('Name', MyEdit.Text, [loPartialKey]); [o]
اگه نيازي باشه بيشتر هم توضيح ميدم ولي بهترين نوع جستجو از جدول اين حالت مي باشد.
اگه درست فهمیده باشم دستور Locate برای بردن اشاره گر جدل داده ها به ردیف با شرط مورد نظر بکار میره .
نمیگم نمیشه برای جستجو باهاش کار کرد چون یه جور پیدا کردن ردیف داده مورد نظر است ولی رو ایراد بزرگ داره :
1 - در شبکه کاربرد نداره
2 - در گرفتن گروه داده (چند ردیف دارای مشخصه خاص) کاربرد نداره
اگه میشه یک نمونه کد از دستور Filter بزارید .
ADOTable1.Filter:='field = '+'مقدار';
ADOTable1.Filtered:=True;
با تشکر
همینکه خودت نوشتی درسته و خودش مثاله!
من برای فیلتر یک فیلد به این صورت نوشتم :
ADOQuery1.Filter:='Bedehkar = '+Edit1.Text+'';
ADOQuery1.Filtered:=True;
حالا اگه بخوام برای بیشتر از دو فیلد، مثلا برای دو فیلد بنویسم باید براش چجوری بنویسم .
بینش علامت (,) گذاشتم جواب نداد
and رو امتحان کنید.