من یک بانک در sql درست کردم . در دلفی 7 میخوام با adoquery جستجو را بر اساس مقدار تایپ شده در edit1 انجام دهم . املای درست دستور select در این حالت چیه ؟
من یک بانک در sql درست کردم . در دلفی 7 میخوام با adoquery جستجو را بر اساس مقدار تایپ شده در edit1 انجام دهم . املای درست دستور select در این حالت چیه ؟
آخرین ویرایش به وسیله msda523 : جمعه 13 مهر 1386 در 14:22 عصر دلیل: اشتباه تايپي
سلام
برای مثال من یک جدول به اسم 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;
منظور شرط هایی هست که بوسیله 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 ممکنه تغییر کنه و دیگه نشه مورد استفاده قرار داد.
خوانایی برنامه بالاتر هست و یکی از اصول مهندسی نرم افزار رو رعایت کردیم.
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.