PDA

View Full Version : مشکل با adoquery



mina_148m
پنج شنبه 27 دی 1386, 12:39 عصر
سلام،
ببخشید چون مشکلم حل نشد یه تایپیک دیگه زدم
من می خوام تو برنامه مربوط به حق التدریس ها گزراش از کارمند ها و اساتید جدا باشه
روی فرمم یه adpconnection adoquery datasource گذاشتم
ارتباطاشم درست تنظیم کردم
تو خاصیت مربوط به sql ، adoquery هم دستور مر بوط به select هم نوشتم
و همون دستوراتم تو check box مربوطه هم همون دستورات نوشتم





ADOquery1.SQl.Clear;
ADOquery1.SQL.Add('Select * From table garardad');
ADOquery1.SQL.Add('Where Kind='+Inttostr(Combobox1.ItemIndex+1));
ADOQuery1.Open;


البته تو کدهای مربوط به checkbox دستور preview اخرش نوشتم
من حتی جای adoquery رو اوردم روی فرمی که combobox هست ، ولی باز نشد
موقع گزراش گیری خطی syntax error n from cluas می ده
در ضمن وقتی می خوام تو زمان طراحی active ، adoquery رو true کنم می گه
invalid sql statement ; expected 'delete; , 'inser' به من نشون می ده

dkhatibi
پنج شنبه 27 دی 1386, 13:29 عصر
البته توی زمان اجرا چون مقدار
Inttostr(Combobox1.ItemIndex+1))
مشخص نیست نمی تونید اونو active کنید
table garardad
یعنی چی؟
کلمه ی table را یا باید حذف کنید یا بچسبانید به قرارداد. تو نام فاصله نداریم.
ضمنا به جای add می تونید متد Sql.text را هم امتحان نمایید.

mina_148m
پنج شنبه 27 دی 1386, 14:30 عصر
سلام،

البته توی زمان اجرا چون مقدار
Inttostr(Combobox1.ItemIndex+1))
مشخص نیست نمی تونید اونو active کنید


خوب من باید تو زمان اجرا باید مشخص کنم از چه نوعی باشه و قبل از اینکه گزراش بگیرم این کار رو روی combobox انجام میدم .پس من باید چیکار کنم ؟ درستش چیه؟


کلمه ی table را یا باید حذف کنید یا بچسبانید به قرارداد. تو نام فاصله نداریم.

این کارم کردم منتهااین دفعه خطای data type mismatch in criteria expression روی دستور open به من میده
و تو زمان طراحی هم برای true کردن adoquery بازم خطای invalid sql statementمی ده
من حتی قبل از دستور open از دستور ExecSQL هم استفاده کردم فایده نداره!:عصبانی++:


ضمنا به جای add می تونید متد Sql.text را هم امتحان نمایید
ابنجوری:=text هم تو زمان طراحی و هم موقع اجرا خطای data type mismatch in criteria expression به من نشون می ده!!


با تشکر

Mahmood_M
پنج شنبه 27 دی 1386, 14:55 عصر
در زمان طراحی فقط خط اول رو بنویسید ( در خاصیت SQL مربوط به ADOQuery ) یعنی :


'Select * From garardad'

بعد جدول رو فعال کنید ، در آغاز برنامه ( در زمان اجرا ) خط دوم رو میتونید اضافه کنید ...
در مورد کد بالا هم کلمه Table اضافی هست ، فقط کافیه که نام جدولتون رو قرار بدید ..

موفق باشید ...

Answer
پنج شنبه 27 دی 1386, 15:15 عصر
دوست من اولا که اروری که داده از شرط شماست حالا من نمیدونم چه شرطی استفاده کردی اگه توضیح بیشتری بدی بد نمیشه
دوما در استفاده از کوری بهتره دستورات رو در زمان اجرا بنویس به این ترتیب که ابتدا کوری رو ببندی سپس خاصیت sql را خالی کرده دستورات را نوشته و کوری را open کنی
در صورت مشکل نمونه برنامه را آپلود کنن

Answer
پنج شنبه 27 دی 1386, 15:22 عصر
اگر فیلد kind که گذاشته اید رشته ای باشد خط سوم شما باید اینگونه باشد:

ADOquery1.SQL.Add('Where Kind='+'"'+Inttostr(Combobox1.ItemIndex+1)+'"');

SYNDROME
پنج شنبه 27 دی 1386, 15:58 عصر
دوست عزیز
کد فوق را در کجا نوشته اید؟
اگر در همانجایی که در سورستان بود نوشته اید اشتباه است.
باید کد فوق را در زیر button بنویسی تا اجرا شود.
موفق باشید

mina_148m
پنج شنبه 27 دی 1386, 15:58 عصر
سلام
من از راهنمایی دوستان خیلی خیلی ممنون هستم
من همه نکاتی که دوستان گفتن رو انجام دادم
حالا گزارش میاد ولی همه اطلاعات رو نشون می ده نه اون رکوردی که من می خوام

اینم برنامه نمونه
با تشکر فراوان

mina_148m
پنج شنبه 27 دی 1386, 16:18 عصر
ببخشید جدول یادم رفته بود بفرستم
دوباره می فرستم
این برنامرو نگاه کنید

dkhatibi
پنج شنبه 27 دی 1386, 18:23 عصر
سلام
کد زیر اصلاح شد.
نحوه ی ارتباط با QuickReport را ببینید.
ضمنا نحوه ی نوشتن دسنورات Sql در کوئری را هنگام طراحی ملاحظه فرمایید.
برای اجرا فراموش نکنید که AdoConnection را دوباره تنظیم نمایی.