PDA

View Full Version : مشکل در حذف فیلد ها در FieldDefs یک ADOQuery



AliReza Vafakhah
پنج شنبه 09 آبان 1387, 14:25 عصر
با سلام خدمت همه دوستان .

دوستان من یک شی کوری به نام Q_Temp دارم .
می خواهم با این شی اطلاعات جدول ها را نمایش بدهم .
وقتی که اطلاعات یک جدول را نمایش دادم ،در دستور select بعدی جدول بعدی ، پیغام خطا صادر میشه که مبتنی بر این است که فیلدی که در جدول قبلی بوده وجود ندارد در صورتی که من با دستورد FieldDefs.Clear تمام فیلدها را پاک می کنم (فیلد های شناخته شده نه خود فیلد) حالا شما چه راه حلی به من پیشنهاد می کنید تا این خطا صادر نشود.

مثلا من ابتدا اطلاعات جدول درس را نمایش می دهم که دارای فیلده Dars_ID است و بعد
اطلاعات جدول استاد را که میخواهم نمایش بدهم پیغام خطا صادر میشه که عکسش رو قرار دادم.

vcldeveloper
جمعه 10 آبان 1387, 11:23 صبح
فیلدها را بصورت استاتیک هم به کوئری اضافه می کنید؟ یعنی در Designer دلفی روی کوئری دابل کلیک می کنید و گزینه Add All Fields را انتخاب می کنید؟
اگر کوئری شما دستور SQLاش در برنامه تغییر می کند، از روش بالا استفاده نکنید. در شرایط عادی که فیلدها بصورت استاتیک اضافه نشدند، به راحتی می تونید دستور SQL را تغییر بدید، و نیازی هم به FieldDefs.Clear نیست.

AliReza Vafakhah
جمعه 10 آبان 1387, 13:45 عصر
آقای کشاورز تشکر .



فیلدها را بصورت استاتیک هم به کوئری اضافه می کنید؟ یعنی در Designer دلفی روی کوئری دابل کلیک می کنید و گزینه Add All Fields را انتخاب می کنید؟



نه من در یک تابع در هنگام اجرا برنامه فیلدهای لوکاپی ایجاد می کنم.
و به نظر شما خوب است که من در برنامه ام به اعضای هر عملیات از یک شی query استفاده کنم آیا این کار باعث کاهش سرعت برنامه نمی شود و حافظه زیادی نمی گیرد

راستی من در فرم های قبلی برنامه ام هنگامی که از دستور FieldDefs.Clear استفاده می کرد مشکلی پیش نمی آمد اما حالا در یکی از فرم ها تمام فیلد ها با دستور بالا پاک میشن به جز فیلد Dars_ID ، البته من از این فیلد جهت ساخت فیلد لوک آپ به عنوان Keyfield استفاده کرده ام

از کمکتون ممنون میشم

vcldeveloper
جمعه 10 آبان 1387, 16:21 عصر
به نظر شما خوب است که من در برنامه ام به اعضای هر عملیات از یک شی query استفاده کنم آیا این کار باعث کاهش سرعت برنامه نمی شود و حافظه زیادی نمی گیرد
بستگی به برنامه شما و چگونگی استفاده از اون کوئری ها داره. یکجا ممکنه خوب باشه، جای دیگه ممکنه بد باشه.