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

نام تاپیک: مشکل در پارامتر ADOQuery

  1. #1

    مشکل در پارامتر ADOQuery

    با سلام در برنامه دلفی ام یک adoquery دارم که در اون از دستور زیر استفاده می کنم
    adoquery1.SQL.Clear;
    adoquery1.Close;
    adoquery1.SQL.Add('select * from ttkelas');
    adoquery1.SQL.Add('where shomare=:a and datet:=b andtterm:=c order by shomare');
    adoquery1.Parameters.ParamValues['a']:=Edit1.Text;
    adoquery1.Parameters.ParamValues['b']:=ComboBox1.Text;
    adoquery1.Parameters.ParamValues['c']:=ComboBox2.Text;
    adoquery1.Open;

    اما برنامه ام را که اجرا می کنم پیغام زیر رو می ده
    project project1.exe raised exception class EDatabaseError with message 'ADOQuery1:Parameter 'b' not found'.Process stopped .Use Step or Run to continue
    که دکمه okو help رو داره که ok که می زنم و برنامه رو برای ادامه که گفته اجرا می کنم پیغام می ده ADOQuery1:Parameter'b' not found
    مشکل برنامم چیه و چطور می تونم اون رو حل کنم ؟

  2. #2

    نقل قول: پیغام پارمتر

    احتمالاً اشكال از دونقطه‌ها و جابجايي‌شون باشه.
    ضمناً براي اين كه كدتون درست ديده بشه اون رو داخل تگ كد بگذاريد.
    [ code]
    ...
    [ / code]

    .
    آخرین ویرایش به وسیله s.mostafa.rahmani : چهارشنبه 15 آبان 1387 در 13:00 عصر

  3. #3

    نقل قول: پیغام پارمتر

    با سلام به شما s.mostafa.rahmani عزیز ممنون از پاسختان
    ببخشید که در تگ نگذاشته ام می شه بگین چطور می تونم کدهام رو در تگ بذارم ممنونم بازم از شما

  4. #4

    نقل قول: پیغام پارمتر

    با استفاده از كليد code در نوار ابزار ويرايشگر:
    در حالت پاسخ سريع:
    code.jpg

    در حالت ويرايشگر پيشرفته:
    code2.jpg

  5. #5
    کاربر دائمی آواتار mafazel
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    رشد
    پست
    241

    نقل قول: پیغام پارمتر

    با سلام
    چرا از این روش استفاده نمی کنید؟

    var
    S :string;
    begin
    adoquery1.SQL.Clear;
    adoquery1.Close;
    S := ' Where shomare='+Edit1.Text+' and datet='+ComboBox1.Text
    +' and tterm='+ComboBox2.Text + ' order by shomare ';
    adoquery1.SQL.Add('select * from ttkelas '+S);
    adoquery1.Open;

    هم ساده تره هم سریعتر
    ضمنا اگر فیلدها از نوع String باشند (مثلا فیلد shomare) باید بجای عبارت +Edit1.Text+ از عبارت
    +QuotedStr(Edit1.Text)+
    استفاده کنید.

  6. #6
    کاربر دائمی آواتار tefos666
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    Tehran , IRAN
    پست
    245

    Wink نقل قول: پیغام پارمتر

    دوست عزیز شما برای استفاده از پارامتر باید به این نکته توجه کنید که بعد از مساوی یک فاصله خالی قرار دهید و سپس : بیانی به صورت فوق select * from all where name= :param1
    به این صورت در AdoQuery خود یک پارامتر add کرده اید برای استفاده هم میتوانید به دو روش یا قبلی که دوست خوبمان گفتند یا روش زیر استفاده کرد


    AdoQuery1.Parameters.ParamByName('param1').Value:= Trim (ComboBox2.Text);


    مثال :




    if ComboBox2.Text='' then
    ShowMessage('اول فیلتر را مشخص کنید')
    else
    begin
    sarjam_refresh.Enabled:=true;
    dm.qrrahgiriostan.Close;
    dm.qrrahgiriostan.SQL.Clear;
    dm.qrrahgiriostan.SQL.Add('select idt , namet ,ostan , sum (tedad) from nahal');
    dm.qrrahgiriostan.SQL.Add('where ostan= :postan group by idt,namet,ostan ');
    dm.qrrahgiriostan.Parameters.ParamByName('postan') .Value:=Trim (ComboBox2.Text);
    dm.qrrahgiriostan.SQL.Add('order by idt');
    dm.qrrahgiriostan.Open;
    sarjam_refresh.Enabled:=False;
    end;
    end;




    سوالی بود در خدمتم

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

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