ورود

View Full Version : سوال: این خطا از چی ناشی میشه؟



اصغر (پآچ)
سه شنبه 28 خرداد 1387, 00:44 صبح
سلام دوستان

من توی برنامه ام یه فرم دارم که توسط اون بانکم رو جستجو می کنم اما وقتی فرم رو با دستور ;Close م بندم یه پیغام خطا با متن زیر:
---------------------------
Debugger Exception Notification
---------------------------
Project Secretariat.exe raised exception class EDatabaseError with message 'ADOQ_Secretariat: CommandText does not return a result set'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
میده که نمی دونم چیه و از کجا منشع می گیره! یه نقطه شکست (Break Point) هم براش تعریف کردم و با کلید های F8 و F7 هم دستورات رو پیگیری کردم اما بازم نفهمیدم از کجاشه
ممنون میشم اگه کمکم کنید!

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

SYNDROME
سه شنبه 28 خرداد 1387, 07:03 صبح
---------------------------
Debugger Exception Notification
---------------------------
Project Secretariat.exe raised exception class EDatabaseError with message 'ADOQ_Secretariat: CommandText does not return a result set'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

این خطا زمانی اتفاق می افتد که شما یک Request به SQL بفرسید و آن دستور نتیجه ای برای aDO بر نگرداند و چون ADO منتظر یک DataSet است و هیچ نتیجه ای بر نمی گردد خطا می دهد.
مثلاً


ADO.Sql.Text := 'Delete From Tbl_Test';
OR
ADO.Sql.Text := 'Update Tbl_Test Set ID =1';

حالا اگر شما ADO را Open کنید پیغام خطای فوق را مشاهده خواهید کرد.
در چنین مواقعی باید به جای دستور ADO.Open از دستور ADO.ExecSQL استفاده کنید.
احتمالا شما در جایی از برنامه چنین کاری را انجام داده اید و در زمان بستن فرم دستور فوق اجرا می شود و پیغام فوق نمایش داده می شود.
دستوراتی مانند Insert Into و یا فراخوانی SP که نتیجه ای بر نمی گرداند هم شامل این روش می شود.
موفق باشید

اصغر (پآچ)
سه شنبه 28 خرداد 1387, 13:16 عصر
سلام
نه اصلا هیچ دستوری برای این ADO موقع بستن فرم ارسال نمیشه
اصلا همه ADO ها کلا در کلیک Exit بسته میشن ولی نمی دونم این خطا برای چی ارسال میشه

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

SYNDROME
سه شنبه 28 خرداد 1387, 21:43 عصر
سلام
نه اصلا هیچ دستوری برای این ADO موقع بستن فرم ارسال نمیشه
اصلا همه ADO ها کلا در کلیک Exit بسته میشن ولی نمی دونم این خطا برای چی ارسال میشه

موفق و موید باشی
دوست عزیز احتمالا شما در زمان بستن فرم عملی را انجام می دهید که موجب عکس العمل ADOQ_Secretariat می شود.
بهتر است هر جا که از این ADOQ_Secretariat استفاده کرده اید و در کلیه رویدادهای مربوط به ADOQ_Secretariat قبل از بستن فرم Break Point قرار دهید و سپس فرمتان را ببندید.
ADO فوق چه دستوری را انجام می دهد؟
موفق باشید

اصغر (پآچ)
سه شنبه 28 خرداد 1387, 23:36 عصر
سلام علی جان
این ADo میاد از توی بانک میان رکورد های با چند نوع شرط مختلف که با یک کمبو و یک ادیت شرایط محیا میشن اسم یکسری رکورد رو برام بر می گردونه

باشه من تو این فرم تمام جاهایی رو که ADo در او استفاده میشه رو نقطه شکست می ذارم

ممنون از راهنماییت بازم خبرت می کنم