نمایش نتایج 1 تا 7 از 7

نام تاپیک: adoquery

  1. #1

    adoquery

    من یک بانک در sql درست کردم . در دلفی 7 میخوام با adoquery جستجو را بر اساس مقدار تایپ شده در edit1 انجام دهم . املای درست دستور select در این حالت چیه ؟
    آخرین ویرایش به وسیله msda523 : جمعه 13 مهر 1386 در 14:22 عصر دلیل: اشتباه تايپي

  2. #2
    سلام
    برای مثال من یک جدول به اسم 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
    این در حالی است که فیلد شما عددی باشد.
    موفق باشید.

  3. #3
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814
    با سلام
    قبل از ایجاد تاپیک در سایت جستجو کنید.
    نقل قول نوشته شده توسط ahmad_che مشاهده تاپیک
    Adoquery1.sql.text:='select * from t1 where f1='+inttostr(edit1.text)
    دستور بالا اجرا نی شود و خطا دارد.به قسمت Bold شده توجه کنید.
    برای جستجو عدد

    ADO.SQL.Text := 'Select * From Tbl_Test Where ID='+Edit1.Text;
    ADO.Active := True;

    برای جستجوی رشته

    ADO.Active := True;

    موفق باشید

  4. #4
    سلام، من کدی رو که شما زحمتشو کشیدی با کمی تغییر اینجا میذارم. این کد مقادیر جستجو رو بر اساس پارامتر میگیره و برای عبارات منطقی (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;
    پیروز باشید

  5. #5
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814
    با سلام
    نقل قول نوشته شده توسط farhad110 مشاهده تاپیک
    برای عبارات منطقی (and , or) هم استفاده میشه.
    منظور خود را واضحتر بیان کنید.
    نقل قول نوشته شده توسط farhad110 مشاهده تاپیک

    ADOQuery1.SQL.Add('select * from table_name where field=:param');
    ADOQuery1.Parameters.ParamValues['param']:=Edit1.Text;
    پیروز باشید
    تعریف پارامتر کار خیلی خوبی است.
    ولی فکر کنم درست نباشد ما Select را ایجاد کنم و بعد آن پارامتر را پاس کنیم مگر اینکه بخواهیم در جاهای دیگر بدون تغییر select مقدار پارامتر را تغییر دهیم.
    موفق باشید

  6. #6
    نقل قول نوشته شده توسط SYNDROME مشاهده تاپیک
    با سلام
    منظور خود را واضحتر بیان کنید.
    منظور شرط هایی هست که بوسیله and و or در query بیان میشه.
    به مثال توجه کنید:

    with ADOQuery1 do begin
    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;
    کد بالا رکوردهایی رو برمیگردونه که دارای ارزش درستی (true) در فیلدهای "field1 , field2" باشند.
    در کدی که شما نوشتی استفاده از عبارات شرطی کد برنامه رو ناخوانا میکنه!

    نقل قول نوشته شده توسط SYNDROME مشاهده تاپیک
    تعریف پارامتر کار خیلی خوبی است.
    ولی فکر کنم درست نباشد ما Select را ایجاد کنم و بعد آن پارامتر را پاس کنیم مگر اینکه بخواهیم در جاهای دیگر بدون تغییر select مقدار پارامتر را تغییر دهیم.
    موفق باشید
    دلیل استفاده از پارامترها:
    وقتی که از پارامتر استفاده میشه، فرقی نمیکنه که ما جستجو رو در فیلد عددی انجام بدیم یا رشته ای ولی در کد شما برای فیلد رشته ای باید تغییراتی در کد انجام بدیم، درسته؟
    از مقادیر پارامترها میشه استفاده مجدد کرد، در صورتی که محتوای edit ممکنه تغییر کنه و دیگه نشه مورد استفاده قرار داد.
    خوانایی برنامه بالاتر هست و یکی از اصول مهندسی نرم افزار رو رعایت کردیم.

    پیروز باشید

  7. #7
    دلیل استفاده از پارامترها:
    وقتی که از پارامتر استفاده میشه، فرقی نمیکنه که ما جستجو رو در فیلد عددی انجام بدیم یا رشته ای ولی در کد شما برای فیلد رشته ای باید تغییراتی در کد انجام بدیم، درسته؟
    از مقادیر پارامترها میشه استفاده مجدد کرد، در صورتی که محتوای edit ممکنه تغییر کنه و دیگه نشه مورد استفاده قرار داد.
    خوانایی برنامه بالاتر هست و یکی از اصول مهندسی نرم افزار رو رعایت کردیم.
    البته اینها درسته، اما اصلی ترین دلیل استفاده از پارامتر افزایش کارایی کوئری هایی هست که بیش از یک بار اجرا میشند. وقتی کوئری شما با پارامتر فراخوانی میشه، از فراخوانی اول به بعد، سرور بانک اطلاعاتی شما می تونه با آن مثل یک Stored Procedure برخورد بکنه و دیگه لازم نیست هر بار دستورات SQL مربوطه Parse بشند و کد برای اجرا آماده بشه، بلکه در اجراهای بعدی، فقط پارامترها جایگزین میشند و کد آماده شده که در Cache موجود است، اجرا می شود.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

تاپیک های مشابه

  1. اشکال در گزارش گیری توسط adoquery
    نوشته شده توسط kavoshgar63 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: شنبه 17 شهریور 1386, 17:55 عصر
  2. کمک در مورد AdoQuery
    نوشته شده توسط chaalesh در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 6
    آخرین پست: سه شنبه 01 خرداد 1386, 11:36 صبح
  3. سئوال در مورد adoquery
    نوشته شده توسط ali-bagban در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: جمعه 31 شهریور 1385, 13:38 عصر
  4. یک سوال در مورد AdoQuery
    نوشته شده توسط سیروس مقصودی در بخش برنامه نویسی در Delphi
    پاسخ: 11
    آخرین پست: دوشنبه 22 خرداد 1385, 21:05 عصر
  5. گرفتن یه کوئری از یک Adoquery
    نوشته شده توسط DataMaster در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: یک شنبه 23 آذر 1382, 00:09 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •