ASP بسيط جدًا لدرجة أن العديد من المطورين لا يفكرون في معالجة الأخطاء. معالجة الأخطاء يمكن أن تجعل تطبيقك أكثر منطقية. لقد رأيت العديد من المواقع التجارية مكتوبة بلغة ASP، وأغلبها يتجاهل معالجة الأخطاء. نوع خاطئ.
هناك ثلاثة أنواع رئيسية من الأخطاء:
1. خطأ في التجميع:
يحدث هذا النوع من الأخطاء عادةً بسبب مشاكل في بناء الجملة في التعليمات البرمجية. توقف ASP عن التشغيل بسبب خطأ في الترجمة.
2. خطأ في التشغيل:
يحدث هذا الخطأ عندما تقوم بالتحضير لتشغيل ASP. على سبيل المثال: إذا حاولت تعيين قيمة لمتغير، لكنها خارج النطاق المسموح به للمتغير.
3. خطأ منطقي:
الأخطاء المنطقية هي الأكثر صعوبة في اكتشافها. غالبًا ما يكون هذا الخطأ خطأً بنيويًا لا يمكن لأجهزة الكمبيوتر العثور عليه. وهذا يتطلب منا فحص الكود الخاص بنا من الأعلى إلى الأسفل.
نظرًا لأن أخطاء الترجمة تحدث عادةً مع الأخطاء المنطقية ويمكن عرضها عادةً، لذلك نحن قلقون فقط بشأن أخطاء التشغيل. يؤدي كل ذلك إلى إنهاء تشغيل ASP ويترك مجموعة من النصوص غير المألوفة للمستخدم. إذًا كيف نتعامل مع أخطاء وقت التشغيل؟
نوع الخطأ:
حقل ADODB (0x800A0BCD)
إما أن يكون BOF أو EOF صحيحًا، أو تم حذف السجل الحالي وتتطلب العملية المطلوبة سجلًا حاليًا.
السبب: عند استخدام SQL للبحث عن السجلات في قاعدة البيانات، كانت نتيجة البحث فارغة، ولم تتمكن من التعامل مع حالة السجلات الفارغة.
الحل: 1. إذا كنت لا تعتقد أن نتيجة البحث فارغة، فيجب عليك التفكير فيما إذا كانت عبارة SQL الخاصة بك صحيحة؛ 2. إذا كانت فارغة بالفعل، فيجب عليك إضافة "if rs.eofthen" أو "do while لا يتم استخدام rs.eof "عبارات مثل " للتعامل مع موقف eof.
نوع الخطأ:
(0×80020009)
وقع حادث.
السبب: عند استخدام SQL للبحث عن سجلات قاعدة البيانات، كانت نتيجة البحث فارغة، وقمت باستدعاء سجلات مثل rs("aa") في التعليمات البرمجية اللاحقة.
الحل: إما كما هو مذكور أعلاه، بالإضافة إلى الحكم والمعالجة لـ rs.eof، أو أن عبارة SQL الخاصة بك خاطئة، مما يؤدي إلى عدم العثور على السجل، ولا يمكن استخدام سجل rs("aa") لاحقًا.
نوع الخطأ:
صفحات الخادم النشطة، ASP 0126 (0×80004005)
لم يتم العثور على الملف المضمن 'xxx.asp'.
السبب: كما تقول رسالة الخطأ، فإن ملف التضمين هذا غير موجود.
الحل: إذا كنت متأكدًا من وجود هذا الملف، فهذا يعني أن المسار الخاص بك مكتوب بشكل خاطئ. على سبيل المثال، يجب أن يكون مساره بالنسبة إلى الدليل الجذر لموقع الويب هو inc/xxx.asp، ثم يجب كتابة inc/xxx.asp في التضمين. وليس فقط xxx.asp. المرفق : طريقة الكتابة تشمل :
نوع الخطأ:
موفر Microsoft OLE DB لبرامج تشغيل ODBC (0×80004005)
[Microsoft] [برنامج تشغيل ODBC Microsoft Access] يجب أن تستخدم العملية استعلامًا قابلاً للتحديث.
السبب: هذا أمر شائع جدًا على خوادم XP ويمثل مشكلة في تكوين الخادم أو مشكلة في أذونات المستخدم.
الحل: إذا كان الخطأ يتعلق فقط بتصحيح الأخطاء على هذا الجهاز، فانقر بزر الماوس الأيمن فوق المجلد الذي يوجد به موقع الويب، وانقر فوق "المشاركة والأمان..."، وانقر فوق "إضافة..." في "الأمان"، واكتب الجميع، ثم قم بتمكين هذا أذونات المستخدم كلها، أي أنه تم التحقق من جميع الأذونات باستثناء الأذونات الأولى بعد التأكيد، ويمكن تحديثها. (ملاحظة: إذا لم تتمكن من العثور على خيار "الأمان"، فانقر فوق "أدوات" في أي مجلد، ثم "خيارات المجلد" - "عرض"، وقم بإلغاء تحديد عمود "استخدام مشاركة الملفات البسيطة". يمكن)
نوع الخطأ:
خطأ في برنامج التحويل البرمجي لـ Microsoft VBScript (0x800A0401)
لم ينتهي البيان
السبب: خطأ في بناء الجملة.
الحل: تحقق من الخطوط التي يطلبها النظام. إذا كانت المطالبة هي السطر الأخير من هذه الصفحة، فمن المحتمل جدًا أن تكون عبارة if نسيت كتابة "end if"، وأن عبارة Select نسيت كتابة "end Select". باختصار، لا توجد نهاية حيث النهاية مطلوب، مما يتسبب في عدم عثور الخادم عليه. في نهاية البيان، يجب عرض الخطأ في السطر الأخير.
نوع الخطأ:
محرك قاعدة بيانات Microsoft JET (0x80040E10)
معلمة واحدة على الأقل ليس لها قيمة محددة.
السبب: عند كتابة عبارات SQL، غالبًا ما نستدعي بعض المعلمات، ومن الممكن ألا يتم تعيين قيمة لأحد هذه المعلمات.
الحل: تحقق مما إذا كانت قيمة كل معلمة قد تم تمريرها بالفعل، ومن المحتمل جدًا أن تكون بعض المعلمات هي "". بالطبع، لا يمكن فهرسة قاعدة البيانات باستخدام هذه المعلمات.
نوع الخطأ:
محرك قاعدة بيانات Microsoft JET (0x80040E37)
لا يمكن لمشغل قاعدة بيانات Microsoft Jet العثور على جدول الإدخال أو الاستعلام "AA". تحديد ما إذا كان موجودًا وما إذا كان اسمه مكتوبًا بشكل صحيح.
السبب: هذا الجدول غير موجود.
الحل: ربما كتبت اسم الجدول الخاطئ أو اتصلت بقاعدة البيانات الخاطئة؟ التحقق من ذلك بعناية مرة أخرى!
نوع الخطأ:
خطأ وقت تشغيل Microsoft VBScript (0x800A000D)
النوع غير متطابق: /'[سلسلة: ""]/"
السبب: لأن نوع المتغير الخاص بك هو سلسلة، لكنك تستخدمه كرقم أو نوع آخر.
الحل: على سبيل المثال، إذا كنت بحاجة إلى متغير رقمي لحساب العمليات الحسابية مثل i=i+1، فيجب عليك استخدام cint (اسم المتغير) على المتغير لفرض التحويل إلى النوع الرقمي، كما يجب أن تكون المقارنة بين المتغيرين من نفس النوع، لذلك يحتاج أيضًا إلى التحويل، والطريقة هي نفسها المذكورة أعلاه.
نوع الخطأ:
محرك قاعدة بيانات Microsoft JET (0x80040E07)
عدم تطابق نوع البيانات في التعبير القياسي.
السبب: بشكل عام، يحدث خطأ عند كتابة عبارات SQL، أي يتم الخلط بين المتغيرات الرقمية والسلسلة.
الحل: من السهل القيام بذلك. حاول إزالة علامات الاقتباس المفردة من المتغيرات في SQL التي أضافت "" أو أضف "" إلى المتغيرات التي كان يُعتقد في الأصل أنها أرقام، ثم تحقق من التأثير.
نوع الخطأ:
خطأ في تشغيل Microsoft VBScript (0x800A01A8)
الكائن المفقود:"
السبب: من المحتمل جدًا أنك لم تقم بتعريف كائن rs.
الحل: لا تنس كتابة set rs=server.CreateObject("adodb.recordset")، حتى تتمكن من تحديد الكائن أو لا تستخدم طريقة الكتابة هذه مباشرة، فسيكون استخدام conn أكثر ملاءمة. قم بتنفيذ ("SQL") مباشرةً، ولا داعي للنظر في مشكلات الكائنات.
نوع الخطأ:
خطأ وقت تشغيل Microsoft VBScript (0x800A005E)
استخدام غير صالح فارغ: "استبدال"
السبب: يعد الاستخدام غير الصالح للوظائف أمرًا شائعًا، بما في ذلك التقسيم وما إلى ذلك. والسبب بسيط نسبيًا، لأن محتوى الاستبدال الخاص بك فارغ.
الحل: من الأفضل إضافة IF للتحقق مما إذا كان المحتوى الذي تريد استبداله فارغًا.
خطأ في برنامج التحويل البرمجي لـ Microsoft VBScript '800a03f6'
لا يدعم برنامج تشغيل ODBC الخاصية المطلوبة.
السبب: قد يكون ذلك بسبب عدم ظهور اسم الحقل في عبارة SQL، وعادة ما تتم كتابة اسم الحقل أو الكلمة الأساسية SQL بشكل غير صحيح. من الممكن أيضًا أن يكون الجدول الذي سيتم فتحه بواسطة SQL قد تم فتحه حصريًا.
الحل: تحقق من كل اسم حقل وكل كلمة رئيسية تظهر في عبارة SQL
موفر Microsoft OLE DB لخطأ برامج تشغيل ODBC '80004005'
المستخدم "Admin" على الجهاز "HDZC-3JQSKBWO02" لديه قفل حصري لجدول البيانات "order_detail".
السبب: تم فتح الجدول المطلوب بواسطة SQL في نموذج تصميم الجدول عن طريق الوصول
الحل: قم بإيقاف تشغيل تصميم الجدول
خطأ في برنامج التحويل البرمجي لـ Microsoft VBScript '800a03f6'
لم يتم العثور على العنصر في المجموعة المطابق للاسم المطلوب أو الرقم الترتيبي.
السبب: لا يوجد اسم حقل يظهر في عبارة SQL، وهذا بشكل عام خطأ في كتابة اسم الحقل أو الكلمة الأساسية SQL.
الحل: تحقق من اسم كل حقل يظهر في عبارة SQL
ADODB.خطأ في مجموعة السجلات '800a0e78'
لا يُسمح بأي عمليات أثناء إغلاق الكائن.
السبب: تم استخدام rs.Close قبل عبارة rs.open sql,conn,3,3 لإغلاق كائن rs.
الحل: قم بإزالة rs.Close السابق
خطأ موفر Microsoft OLE DB لبرامج تشغيل ODBC '80040e14'
[Microsoft] [برنامج تشغيل ODBC Microsoft Access] خطأ في بناء الجملة (عامل تشغيل مفقود) في تعبير الاستعلام "شجرة فئة نموذج oid حيث oid = 25".
السبب: هناك كلمة رئيسية إنجليزية مكتوبة بشكل غير قانوني أو خطأ فقرة فرعية في عبارة SQL.
الحل: اكتب عبارة SQL، ثم قارنها كلمة بكلمة لمعرفة أخطاء الكتابة.
تتطلب العملية استعلامًا قابلاً للتحديث
الإجابة: تحقق مما إذا كان ملف المكتبة للقراءة فقط.
الإجابة 2: مجموعة السجلات المصنفة (الترتيب حسب) (rs) لا تسمح بعمليات التحديث (rs.update)
3219 العملية غير مسموح بها على هذا المحتوى
الإجابة 3: ما إذا تم تعيين خصائص حقل قاعدة البيانات للسماح بإدراج قيمة فارغة.
وسيطة adErrInvalid 3001
0x800A0BB9
يستخدم التطبيق معلمة من النوع الخطأ، أو تقع خارج النطاق المقبول، أو تتعارض مع معلمات أخرى.
adErrNoCurrentRecord 3021
0x800A0BCD
BOF أو EOF صحيح، أو تم حذف السجل الحالي. تتطلب العملية التي يطلبها التطبيق السجل الحالي.
عملية إعلانية 3219
0x800A0C93
العملية التي يطلبها التطبيق غير مسموح بها في هذا السياق
أديرينترانزكشن 3246
0x800A0CAE
لا يمكن للتطبيق إغلاق كائن الاتصال بشكل صريح أثناء المعاملة.
adErrFeatureNotAvailable 3251
0x800A0CB3
لا يدعم الموفر العملية التي يطلبها التطبيق.
أديريتيمنوتفوند 3265
0x800A0CC1
لا يمكن لـ ADO العثور على كائن في المجموعة يتوافق مع الاسم أو مرجع التسلسل المطلوب بواسطة التطبيق.
أديرأوبجيكتإنكولكشن 3367
0x800A0D27
غير قادر على الإلحاق، الكائن موجود بالفعل في المجموعة.
adErrObjectNotSet 3420 0x800A0D5C لم يعد الكائن المشار إليه بواسطة التطبيق يشير إلى كائن صالح.
أديرداتاكونفيرسيون 3421
0x800A0D5D
استخدم التطبيق نوع قيمة غير مناسب للعملية الحالية.
أديرأوبجيكتكلوزد 3704
0x800A0E78
إذا كان الكائن مغلقًا، فلن يُسمح بالعملية التي يطلبها التطبيق.
أديرأوبجيكتأوبين 3705
0x800A0E79
إذا كان الكائن مفتوحًا، فلن يُسمح بالعملية التي يطلبها التطبيق.
أديربروفيديرنوتفوند 3706
0x800A0E7A
لا يمكن لـ ADO العثور على الموفر المحدد.
إعلانErrBoundToCommand 3707
0x800A0E7B
لا يمكن للتطبيق استخدام كائن Command لتغيير خاصية ActiveConnection لكائن Recordset إلى البيانات المصدر الخاصة به.
أديرينفاليدبارامإنفو 3708
0x800A0E7C
يعرّف التطبيق كائن المعلمة بشكل غير صحيح.
اتصال غير صالح 3709
0x800A0E7D
يطلب أحد التطبيقات إجراء عملية على كائن ما عن طريق الرجوع إلى كائن اتصال مغلق أو غير صالح.
خطأ ADODB.Field '80020009' إما أن يكون BOF أو EOF هو 'صحيح'، أو تم حذف السجل الحالي وتتطلب العملية المطلوبة سجلاً حاليًا.
الحل هو كما يلي: يحدث هذا الخطأ بسبب عدم وجود سجلات SELECT وDELETE، أو عدم وجود سجلات في المكتبة، لذا تحقق من عبارة SQL لمعرفة ما إذا كانت شروط SELECT وDELETE صحيحة حدد سجلاً أو استخدمه قبل الحذف خطأ في الاستئناف التالي.... عند الانتقال إلى الخطأ 0 للتعامل معه. إذا كان ذلك بسبب عدم وجود سجل في المكتبة، فما عليك سوى إضافة حكم إذا كان objRecordSet.Eof وobjRecordSet.Bof، لأنه عند فتح مجموعة السجلات، يشير المؤشر إلى النهاية بشكل افتراضي، لذلك يمكنك فقط استخدام If objRecordSet. Eof ثم للحكم.
ActiveServerPages,ASP0126(0×80004005)->لم يتم العثور على ملف التضمين
MicrosoftOLEDBProviderforODBCDrivers(0x80040E21) –> خطأ في بيان SQL (نوع البيانات غير متطابق أو خطأ في اسم الجدول (اسم الحقل) أو الجدول في حالة التحرير، أو الجدول غير موجود في قاعدة البيانات المفتوحة بواسطة conn)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)–>خطأ في بيان SQL (خطأ في اسم الحقل، أو عدم تطابق نوع البيانات)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)–>خطأ في بيان SQL (نوع الحقل الذي سيتم إدراجه أو تحديثه لا يتطابق مع نوع البيانات المتغير)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E57)–>خطأ في بيان SQL (البيانات التي سيتم إدراجها أو تحديثها تجاوزات)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E10)–>خطأ في بيان SQL (تحديث اسم الحقل أو نوع البيانات المراد تحديثه غير صحيح)
MicrosoftOLEDBProviderforODBCDrivers(0×80004005)–>خطأ في بيان SQL (لا يمكن أن تكون قيمة الحقل المراد إدراجه أو تحديثه فارغة)
MicrosoftOLEDBProviderforODBCDrivers(0×80004005) -> خطأ في فتح قاعدة البيانات، لم يتم العثور على قاعدة بيانات في الدليل المحدد
MicrosoftOLEDBProviderforODBCDrivers(0x80040E37)–>لم يتم العثور على جدول
خطأ وقت تشغيل MicrosoftVBscript (0x800A000D) –> خطأ في الرجوع إلى متغير rs (كائن rs مغلق أو غير محدد)
خطأ وقت تشغيل MicrosoftVBscript (0x800A01C2) –> خطأ في البرنامج النصي vbscript (خطأ في بيان vbscript)
خطأ وقت تشغيل MicrosoftVBscript (0x800A0006) –> خطأ في البرنامج النصي vbscript (خطأ تجاوز السعة)
خطأ في برنامج التحويل البرمجي لـ MicrosoftVBscript (0x800A040E) –> حلقة مفقودة
خطأ في برنامج التحويل البرمجي لـ MicrosoftVBscript (0x800A03EA) -> مفقود إذا أو endif
خطأ في برنامج التحويل البرمجي لـ MicrosoftVBscript (0x800A03EE) –> البيان لم ينته (مفقود ")")
خطأ في برنامج التحويل البرمجي لـ MicrosoftVBscript (0x800A03F6) ->خطأ في عبارة if (endif مفقود)
خطأ وقت تشغيل MicrosoftVBscript (0x800A005B)->المجموعة مفقودة
خطأ وقت تشغيل MicrosoftVBscript (0x800A0005) -> لم يتم تعريف المتغير
خطأ في برنامج التحويل البرمجي لـ MicrosoftVBscript (0x800A03F9) ->إذا كانت العبارة مفقودة
خطأ في برنامج التحويل البرمجي لـ MicrosoftVBscript (0x800A0411) -> خطأ في تعريف العبارة الخافتة
ADODB.Recordset(0x800A0BB9) –> خطأ في عبارة SQL (لم يتم تعريف عبارة SQL أو عبارة conn أو حدث خطأ عند تعيين قيمة لسمة rs)
ADODB.Recordset(0x800A0CC1)->خطأ في كائن rs (كائن rs نفسه غير موجود أو يشير بشكل غير صحيح إلى اسم حقل غير موجود)
ADODB.Recordset(0x800A0BCD)–>خطأ في الكائن rs (لا يوجد سجل في مجموعة السجلات ولكن مجموعة السجلات قيد التشغيل)
ADODB.Recordset(0x800A0E78)–>خطأ في الكائن rs (مجموعة السجلات غير موجودة، بيان rs.open مفقود)
ADODB.Recordset(0x800A0CC1) -> خطأ في كائن rs (الإشارة إلى اسم حقل غير موجود)
ADODB.Recordset(0x800A0E7D)–>خطأ في تعريف conn
ADODB.Recordset(0x800A0CB3)–>يتم فتح قاعدة البيانات في وضع القراءة فقط ولا يمكن تحديث البيانات.