View Full Version : پارامتر در adoquery
mmm_mirahmadi
سه شنبه 30 آبان 1385, 12:30 عصر
با سلام اشکال خطوط زیر چیست
adoquery1.SQL.clear ;
adoquery1.SQL.Add('select * from mrkz_des where mrkz_code=:param1 and yearterm=:param2');
adoquery1.Parameters.ParamByName ('param1').value:=dbedit1.text;
adoquery1.Parameters.ParamByName ('param2').value:=tyearterm;
adoquery1.Open ;
MRKZ_CODE کاراکتری با محتوی عددی
YEARTERM کاراکتری با محتوی عددی
TYEARTERM:='851'
متشکرم
sarvestan
سه شنبه 30 آبان 1385, 12:50 عصر
adoquery1.SQL.clear ;
adoquery1.SQL.Add('select * from mrkz_des where mrkz_code=:param1 and yearterm=:param2');
adoquery1.Parameters.ParamByName ('param1').value:=strtoint(dbedit1.text);
adoquery1.Parameters.ParamByName ('param2').value:=strtoint(tyearterm);
adoquery1.Open ;
mmm_mirahmadi
پنج شنبه 02 آذر 1385, 10:49 صبح
تست شد اما جواب صحیح دریافت نگردید .
هدف من این است که با دریافت مقدار یک کد در زمان اجرا , وجود یا عدم وجود رکوردی را در جدول مربوطه جستجو و پیام مناسب را به کاربر بدهم .
متشکرم
mzjahromi
پنج شنبه 02 آذر 1385, 11:30 صبح
کد فوق رو که اجرا میکنید چه خطائی دریافت میکنید؟
mmm_mirahmadi
پنج شنبه 02 آذر 1385, 18:43 عصر
خطایی نمیدهد . درست اجرا نمی کند یعنی وارد کردن کدی که در جدول دارای رکورد است و وارد کردن کدی که فاقد رکورد است هیچ فرقی ندارد و پاسخ برگشتی عدم یافتن رکورد میباشد در حقیقت adoquery خالی است .
mzjahromi
سه شنبه 07 آذر 1385, 10:31 صبح
کد رو این شکلی اصلاح کنید ببینید جوابی میگیرید
adoquery1.SQL.Add('select * from mrkz_des where mrkz_code='+QuotedStr(DBEdit1.Text)+' and yearterm='+IntToStr(Tyearterm));
محمد دادودنیا
چهارشنبه 08 آذر 1385, 03:04 صبح
در مورد پارامترها اگر فیلد مورد نظرتون از نوع رشته ای بود باید اونو با Qoutedstr به پارامتر ارسال کنید وقتی با Valueاونو ست می کنی مقدار رو بدون '' به AdoQuery می فرسته
mmm_mirahmadi
پنج شنبه 16 آذر 1385, 08:41 صبح
بشکل زیر دستور وارد گردید ERROR داد ضمنا هدف استفاده از پارامتر است در حالیکه این راه حل اگر هم درست اجرا شود استفاده از پارامتر را منتفی می کند
adoquery1.SQL.Add('select * from mrkz_des where mrkz_code='+quotedstr(dbedit1.Text)+' and yearterm='+inttostr(tyearterm));
ERROR: there is no overloaded version of ' intTostr' that can be called with these arguments
mzjahromi
جمعه 17 آذر 1385, 17:03 عصر
این خطائی که شما دریافت کرده اید بخاطر نوع داده ای yearterm است باید نوع اولیه آن int باشد تا inttostr بتوواند روی آن عمل کند
ضمنا هدف استفاده از پارامتر است در حالیکه این راه حل اگر هم درست اجرا شود استفاده از پارامتر را منتفی می کند
معمولا برای پیدا کردن مشکلهائی که ظاهرا هیچ عیب و ایرادی ندارند باید راههائی را تست کرد که مشخص کند مشکل واقعا از کجاست؟
هدف کنار گذاشتن پارامترها نبوده است هدف بررسی است(با توجه به اینکه ما به پروژه شما به صورت صد درصد مسلط نیستیم)
mmm_mirahmadi
یک شنبه 19 آذر 1385, 11:21 صبح
همانطور که قبلا توضییح دادم فیلد yearterm بصورت کاراکتری تعریف گردیده که محتوی آن عددی نظیر 851 ' 852 و غیره میباشد ضمنا متغییر tyearterm بصورت زیر تعریف گردیده است .
tyearterm: string[3]='851'
mmm_mirahmadi
پنج شنبه 23 آذر 1385, 09:01 صبح
از همه تشکر می کنم . مشکل حل شد . ایراد در قسمت دیگری از برنامه بود .
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.