الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال فى عمل ال Error Handle

مغلق
بدأه محمد أحمد إبراهيم في 8 يناير 2008 · 3 رد · 658 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ,

أعمل على قاعدة بيانات SQL SERVER عن طريق الـ VB6 , والمشكلة هنا أننى أريد عمل ERROR HANDLE للخطأ الذى يظهر عندما لايتم الإتصال مع السيرفر أو قاعدة البيانات "قاعدة البيانات غير موجود " , حيث رسالة الخطأ هى كالآتى :

run-time error '-2147467259(80004005)'

أقوم بعمل handle بالطريقة :

On error goto errhndl

.

.

.

.

errhndl:

if Err.number =....

المشكلة هنا أكتب err.number يساوى كام , لأنه كتبت الرقم إللى بيظهر بكذا صيغة لكن بيظهر خطأ كل مرة أو تظهر نفس الرسالة السابقة ولم يتم عمل handle للخطأ .

وشكرا للجميع .

#2

ممكن يكون الرد غير إحترافي ولكن هل جربت :

في الهاندل تبع الخطأ قم بعمل .. دالة أو أي طريقة لإظهار رقم الخطأ من الدالة Err.Number

يعني عند حدوث الخطأ إستعمل الـ Msgbox أو الـ Debug لمعرفة قيمة الـ Err.Number

On error goto errhndl
errhndl:
msg box Err.number
#3

انا جربت اعمل الـ Database offline و ظهرلى نفس رقم الخطأ.

جربت اغلق الـ Service جاب نفس الرقم.

جربت اوقف الـ Service بشكل مؤقت Pause جاب برضه نفس الرقم.

بس الرسال اللى بتظهر للمستخدم هى اللى بتتغير و بالتالى احنا مش هنقدر نعتمد على Err.Number

الرقم ده تبع الـ Visual Basic و بيدل على Automation Error و يعنى عدم القدرة على استدعاء دالة معينه

و بالتالى فممكن نعتمد على الرسالة اللى بتظهر كأن نعرف الرسالة بتدأ بكلمة ايه و على الأساس نبدأ ننفذ.

طبعا طريقه صعبه بس انا جربت استخدم GetLastError API بترجع بصفر، ايضا جربت استخدم الخاصيه LastDLLError الموجوده فى الكائن Err برضه بترجع بصفر.

و الله ولى التوفيق

تم تعديل هذه المشاركة بواسطة Game Expert في 8 يناير 2008 في 16:00

مدونتي: C++ Tips and Tricks

#4

قمت بتجربة msgbox Err.number ولكن ظلت المشكلة , الخطأ يظهر والـ msgbox لا تظهر .. أرجو ممن لديه حل آخر أن يطرحه للتجربة , وشكرا لإهتمامكم .

هذا الموضوع مغلق.

مواضيع مشابهة