من یک بانک در sql درست کردم . در دلفی 7 میخوام با adoquery جستجو را بر اساس مقدار تایپ شده در edit1 انجام دهم . املای درست دستور select در این حالت چیه ؟
Printable View
من یک بانک در sql درست کردم . در دلفی 7 میخوام با adoquery جستجو را بر اساس مقدار تایپ شده در edit1 انجام دهم . املای درست دستور select در این حالت چیه ؟
سلام
برای مثال من یک جدول به اسم t1 دارم و می خوام روی فیلد f1 جستجو کنم
این دستور رو می نویسم
Select * from t1 where f1=10
برای اینکه تمامی فیلد ها نمایش داده شوند * را بعد از select گذاشتیم و اگر بخواهیم فقط f1 نمایش داده بشوند می نویسیم Select f1 from t1
اگر هم فیلد شما رشته ای باشد باید بین '' قرار بگیرد.
دستور دلفی ای که شما می خواهید بدین صورت می باشد.
Adoquery1.close;
Adoquery1.sql.text:='select * from t1 where f1='+inttostr(edit1.text.) a
Adoquery1.open
این در حالی است که فیلد شما عددی باشد.
موفق باشید.
سلام، من کدی رو که شما زحمتشو کشیدی با کمی تغییر اینجا میذارم. این کد مقادیر جستجو رو بر اساس پارامتر میگیره و برای عبارات منطقی (and , or) هم استفاده میشه.
ADOQuery1.Close;پیروز باشید
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from table_name where field=:param');
ADOQuery1.Parameters.ParamValues['param']:=Edit1.Text;
ADOQuery1.Open;
با سلام
منظور خود را واضحتر بیان کنید.
تعریف پارامتر کار خیلی خوبی است.
ولی فکر کنم درست نباشد ما Select را ایجاد کنم و بعد آن پارامتر را پاس کنیم مگر اینکه بخواهیم در جاهای دیگر بدون تغییر select مقدار پارامتر را تغییر دهیم.
موفق باشید
منظور شرط هایی هست که بوسیله and و or در query بیان میشه.
به مثال توجه کنید:
with ADOQuery1 do beginکد بالا رکوردهایی رو برمیگردونه که دارای ارزش درستی (true) در فیلدهای "field1 , field2" باشند.
Close;
SQL.Clear;
SQL.Add('select * from table_name where field1=:param1 and field2=:param2');
Parameters.ParamValues['param1']:=Edit1.Text;
Parameters.ParamValues['param2']:=Edit2.Text;
Open;
end;
در کدی که شما نوشتی استفاده از عبارات شرطی کد برنامه رو ناخوانا میکنه!
دلیل استفاده از پارامترها:
وقتی که از پارامتر استفاده میشه، فرقی نمیکنه که ما جستجو رو در فیلد عددی انجام بدیم یا رشته ای ولی در کد شما برای فیلد رشته ای باید تغییراتی در کد انجام بدیم، درسته؟
از مقادیر پارامترها میشه استفاده مجدد کرد، در صورتی که محتوای edit ممکنه تغییر کنه و دیگه نشه مورد استفاده قرار داد.
خوانایی برنامه بالاتر هست و یکی از اصول مهندسی نرم افزار رو رعایت کردیم.
پیروز باشید
البته اینها درسته، اما اصلی ترین دلیل استفاده از پارامتر افزایش کارایی کوئری هایی هست که بیش از یک بار اجرا میشند. وقتی کوئری شما با پارامتر فراخوانی میشه، از فراخوانی اول به بعد، سرور بانک اطلاعاتی شما می تونه با آن مثل یک Stored Procedure برخورد بکنه و دیگه لازم نیست هر بار دستورات SQL مربوطه Parse بشند و کد برای اجرا آماده بشه، بلکه در اجراهای بعدی، فقط پارامترها جایگزین میشند و کد آماده شده که در Cache موجود است، اجرا می شود.نقل قول:
دلیل استفاده از پارامترها:
وقتی که از پارامتر استفاده میشه، فرقی نمیکنه که ما جستجو رو در فیلد عددی انجام بدیم یا رشته ای ولی در کد شما برای فیلد رشته ای باید تغییراتی در کد انجام بدیم، درسته؟
از مقادیر پارامترها میشه استفاده مجدد کرد، در صورتی که محتوای edit ممکنه تغییر کنه و دیگه نشه مورد استفاده قرار داد.
خوانایی برنامه بالاتر هست و یکی از اصول مهندسی نرم افزار رو رعایت کردیم.