PDA

View Full Version : خطای مربوط به ADOQuery



amirkazem
جمعه 17 بهمن 1393, 22:02 عصر
باسلام.دوستان محبتی بفرماییدوراهنمایی کنید.
دوجدول داریم :1.ghabz(دارای فیلدهای:1.آی دی2.شناسه قبض3.نوع قبض)(id,sh_ghabz,type)
2.pardakht(دارای فیلدهای:1.آی دی2.شناسه قبض3.شناسه پرداخت4.دوره5.تاریخ پرداخت6.مبلغ7.کدرهگیری)(id,sh_gh abz,sh_pardakht,doreh,date_pardakht,mablagh,code_r ah)

ارتباط بین دوجدول ازطریق فیلد شناسه قبض(sh_ghabz)هستش. می خواهیم بایک کوئری اطلاعاتی استخراج کنیم که ازترکیب دوجدول باشد ودرآن فیلد(نوع قبض) typeهم راداشته باشیم.ناچاراًباید join کنیم.

select *
from pardakht p
inner join ghabz g
on p.sh_ghabz=g.sh_ghabz
این کدsqlکه بنده می نویسم خطا می دهد.درحالی که درمحیط (اکسس)ودرقسمت کوئری های خود اکسس دقیقاًاجراشده وخروجی هم دارد.
ولی درمحیط دلفی ودرتنظیمات (ADOQuery) خطامی دهد.
دوستان محبتی بفرمایید تامشکل راحل کنیم.

hp1361
جمعه 17 بهمن 1393, 22:18 عصر
سلام

پیغام خطا؟!

amirkazem
جمعه 17 بهمن 1393, 22:33 عصر
Adoquery1:field'sh_ghabz' not found

amirkazem
جمعه 17 بهمن 1393, 22:36 عصر
اگربه جای استار (sh_ghabz)رابیاریم بازاین اروررامیده.
کاربرد جوین به این دلیل هستش که: یکی ازانواع جستجوبرای قبوض پرداخت شده گذاشته ایم، جستجوبراساس نوع قبض می باشد که نوع قبض فقط درجدول قبض ثبت شده است ودرجدول پرداخت فقط شناسه قبض ازجدول قبض وجوددارد.

fahimi
شنبه 18 بهمن 1393, 17:54 عصر
احتمالا در شی AdoQuery گزینه Field Editor فیلد های اضافه کرده ای که sh_ghabz در آن نیست.

amirkazem
شنبه 18 بهمن 1393, 21:52 عصر
سلام
جناب fahimi درfield editor مربوط به adoquery1 تمام فیلدهاازجملهsh_ghabzهم موجودهستش.
مشکل اینجاست که وقتی جدول پرداخت باجدول قبض جوین شده، درقسمت objectinspector فرم دلفی، درقسمت fieldnameکه قراراست نام ستونهای dbgrideدرنظرگرفته شود، آنجا فقط فیلدهای جدول پرداخت هستندوخبری ازفیلدهای جدول قبض نیست.

یوسف زالی
شنبه 18 بهمن 1393, 22:45 عصر
نام فیلد ها باید یونیک باشد، اگر یک نام در چند جدول دارید، نام ها تغییر خواهند کرد.
در صورتی که فیلد ها رو در دیتاست در زمان طراحی add کرده باشید، تعداد و نوع فیلد ها باید متناسب با اون باشه.
اگر کوئری گرفته شده ممکنه خروجی های متفاوتی از این نظر تولید کنه نباید این فیلد ها رو add کنید.

amirkazem
شنبه 18 بهمن 1393, 23:36 عصر
باسلام ضمن تشکرازمحبت دوستان به اطلاع برسونم مشکل بااشاره ای که جناب Youseeکردندبه این صورت حل شدکه:
ابتداازقسمت(AddFields) کوئری تمام فیلدهایی که ازجوین کردن جداول ایجادشده بودرا(Add)کردم وسپس یک فیلدردیف نیزبه آن اضافه کردم وجواب بدست آمد.
موفق باشیم