View Full Version : مشکل با اجرای کیویری !
  
samprp
شنبه 03 فروردین 1387, 10:00 صبح
سلام دوستان
امروز می خواستم با ادوکیویری , ادوکانکشن و دیتاسورس یک کیوری به صورت زیر رو اجراش کنم:
  with frmFileNew.ADOQuery1.SQL do
  begin
    Clear;
    Add('SELECT    stuff_unit');
    Add('FROM      Stuff');
    Add('WHERE (stuff_name=N'''+strStuff+''')');
  end;
که متاسفانه بعد از اجرا هیچ چی نشون نمی ده نه تو دیتاگرید و نو تو دیتالیبل .
البته با بعضی مقادیر کار می کنه و با بعضی ها نه . هیچ تناظری هم بین اون ها وجود نداره که چرا با اون ها کار می کنه و با بقیه نه . خوب اینم لیست همون stuff_name ها که من در کد بالا اون ها رو داخل متغیر strstuff ریختم :
Gooosht              kilo
gooosht3             kilo
gooosht4             kilo
goosht               kilo
برنج                  کیلو
چای                 بسته
  حبوبات               کیلو
  صندلی                عدد
قند                     کیلو
گوشت               کیلو
مانیتور               دستگاه
ماوس                 عدد
منگنه                 بست
میز                    عدد
کارتریج              عدد
کاغظ A4            بسته
  کیبرد                  عدد
  
البته جای بعضی هاش عوض شده در بالا ولی در کل من می خوام وقتی کاربر نوع کالا رو در یه فرم دیگه انتخاب کرد و اوکی زد من واحد اون کالا رو بگیرم . از وسط این کالاهایی که اینجا گذاشتم کالاهای مانیتور , چای , صندلی , میز , کارتریج و کیبرد هیچ مقداری رو نشون نمی دن
در حالیکه....
در حالیکه همین کد رو با خود استودیوی اس کیو ال سرور امتحان کردم و کار می کنه .
الان واقعا درمونده شدم و نمی دونم چی کار کنم .
دوستان کسی می تونه کمکم کنه.
ممنون.
SYNDROME
شنبه 03 فروردین 1387, 22:19 عصر
مانیتور , چای , صندلی , میز , کارتریج و کیبرد هیچ مقداری رو نشون نمی دن
همه کالاهای فوق یا کلمه "ی" و یا کلمه "ک" را دارند.
کالاهایی را جستجو کنید که فاقد این کلمات باشد.ببینید که برنامه کار می کند یا نه؟
موفق باشید
mohinsoft
شنبه 03 فروردین 1387, 22:40 عصر
سلام
من به جای adoquery از adodataset استفاده کردم هیچ فرقی نداره 
کد زیر رو تست کنید:
    AdoDataSet1.Connection:=adoconnection1;
    AdoDataSet1.CommandText:='select stuff_unit from stuff where stuff_name='
       +QuotedStr(trim(edit1.text));
    AdoDataSet1.open;
فرض کردم نام وارده در edit1.text قرار داره و adoconnection1 رابط اتصال شما به بانک اطلاعاتی هست
احتمال زیاد جواب بگیرید
موفق باشید
samprp
یک شنبه 04 فروردین 1387, 13:14 عصر
[/right]
[/right]
همه کالاهای فوق یا کلمه "ی" و یا کلمه "ک" را دارند.
کالاهایی را جستجو کنید که فاقد این کلمات باشد.ببینید که برنامه کار می کند یا نه؟
موفق باشید
سلام 
این رو در بالا ذکر کردم کلا هر کلمه ای که توش ی نداشته باشه درست کار می کنه . 
سلام
من به جای adoquery از adodataset استفاده کردم هیچ فرقی نداره 
کد زیر رو تست کنید:
    AdoDataSet1.Connection:=adoconnection1;
    AdoDataSet1.CommandText:='select stuff_unit from stuff where stuff_name='
       +QuotedStr(trim(edit1.text));
    AdoDataSet1.open;
فرض کردم نام وارده در edit1.text قرار داره و adoconnection1 رابط اتصال شما به بانک اطلاعاتی هست
احتمال زیاد جواب بگیرید
موفق باشید
ممنون دوست من . این رو نتونستم تست کنم ولی تو زمان طراحی یه دیتاست گذاشتم
و ربطش دادم به ادو کانکشن و همچنین دیتاسورس . 
اون کوئری هم که نوشته بودم رو در قسمت کامند تکست گزاشتم . 
با بقیه ی کلمات مثل گوشت و ... کار می کرد ولی با مانیتور و کالا اونایی که ی دارند کار نمی کرد . دیگه نمی دونم چی کار کنم . اصلا هیچ گزینه ی اضافی هم وجود نداره که مثلا آنیکد یا چیز دیگه ای رو بخواد تعیین کنه . 
لطفا یه راه چاره ای بدید دوستان
mohinsoft
یک شنبه 04 فروردین 1387, 13:52 عصر
سلام 
اون کوئری هم که نوشته بودم رو در قسمت کامند تکست گزاشتم 
هدف این بود که از کامند تکست نوشته شده استفاده کنید حالا به هر ترتیبی که میخواهید به database وصل شوید فرقی نمی کنه لطفا کامند تکست زیر رو جایگزین کنین بیبینید جواب میگیرید؟
AdoDataSet1.CommandText:='select stuff_unit from stuff where stuff_name='
       +QuotedStr(trim(edit1.text));
samprp
یک شنبه 04 فروردین 1387, 14:11 عصر
من قبلا مقدار کالا رو از یه متغیر می گرفتم ولی الان از ادیت استفاده کردم .
ولی جواب نداد . با بقیه کار می کنه ولی با اونایی که ی دارند نه .
mohinsoft
یک شنبه 04 فروردین 1387, 14:35 عصر
دوست من موارد زیر رو تست کن ببین رعایت شده یا نه؟
1-
control panel-->regional and languge option
باید در سه سربرگ گزینه های فارسی و ایران باشه
2-
نصب فونتهای فارسی
3-توی sql serverبیبین collaction name برابر Arabic_CI_AS هست یانه
اگر نبود تنظیمات رو ست کن بعد کامند تکستی که نوشتیم رو تست کن ببین جواب میگیری؟
samprp
یک شنبه 04 فروردین 1387, 19:09 عصر
سلام دوست خوبم
تو همش فارسی انتخاب شده بود
با ورد هم به راحتی فارسی کار می کنم حتی با ی هم مشکلی ندارم
در ضمن فونت های فارسی هم نصب دارم
اون کولسشن رو هم به هر زحمتی بود پیداش کردم 
ولی همونی بود که شما گفته بودید .
خوب راه حل دیگه ای دارید.
در ضمن با TNT هم کار کردم . از دی بی گریدش استفاده کردم
ولی نشد که نشد
:عصبانی++:
mohinsoft
یک شنبه 04 فروردین 1387, 22:29 عصر
سلامی دوباره
دوست عزیز برای رفع این مشکل من از %% استفاده کردم باز هم اگه اساتید بزرگوار کد بهینه تری رو مد نظر دارن خوشحال میشیم استفاده کنیم 
ببینید چون sql با ی مشکل داره شما کلمه تون رو بدون ی و در انتها با عبارت %% جمع کنید کاری مثل کد زیر:
select stuff_unit  from stuff where stuff_name like 'صندل'+'%%'
SYNDROME
دوشنبه 05 فروردین 1387, 09:44 صبح
احتمالا به خاطر تفاوت در کدهای ی و ک شما است.
لینک زیر را نگاه کنید.
http://barnamenevis.org/forum/showthread.php?t=71262
موفق باشید
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.