قراءة التصحيح والتفسير

لأخطاء التي تحدث على الكمبيوتر تسمى الأخطاء، المصحح لإيجاد الأخطاء بين الأكواد المكتوبة من خلال العمل في خلفية برنامج المترجم، وعملية حل هذه الأخطاء تسمى التصحيح. نشأ مصطلح bugs في الأربعينيات. سمي على اسم حشرة تسببت في حرق دوائر الكمبيوتر العسكري. وهكذا، بدأت أخطاء النظام والبرمجيات تسمى "أخطاء".

حسنا، كيف نفهم ونفسر الأخطاء التي تأتي إلى النظام. هذا الخطأ هو خطأ في بناء الجملة أو خطأ في وقت التشغيل أو استدعاء وظيفة خاطئة أو استخدام المتغيرات الخاطئة في المكان الخطأ، إلخ. على سبيل المثال، قد يكون من الصعب جدا إصلاح المشكلات في التعليمات البرمجية الخاصة بك. إذا كانت المشكلة التي تواجهها عبارة عن خطأ، فمن السهل جدا إصلاحها لأنك تعرف بالفعل رقم الملف والسطر الخاص بالمشكلة. في بعض الأحيان تكون المشكلة هي أن التطبيق لا يفعل ما تتوقع منه القيام به، وفي معظم الأحيان يكون إصلاح ذلك أكثر صعوبة.

cftrace and cfdump

يمكن وضع علامة cftrace في أي سطر برمجي ويمكن وضعه أكثر مرة كما تريد. يستخدم هذا المتغير لمراقبة وظائف الدالة

هناك طريقة أخرى للمساعدة في تصحيح المشكلة وهي استخدام علامة cfdump. تقوم علامة cfdump بإخراج أي متغير، بما في ذلك المتغيرات التي ليست قيما بسيطة

Javascript debugging

ليس من السهل تصحيح هذه الأخطاء. ومع ذلك ، تحتوي جميع المتصفحات على مصحح جافا سكريبت. باستخدام مصحح أخطاء المتصفح ، يمكننا اتباع التعليمات البرمجية خطوة بخطوة عن طريق إضافة نقاط توقف التعليمات البرمجية لكل سطر. يمكن الوصول إلى نافذة التصحيح باستخدام مفتاح F12 في جميع المتصفحات الحديثة. تم إسقاط خطأ وحدة التحكم على وحدة التحكم. أدناه  وحدة التحكم هو مثال على شاشة الخطأ.

طريقة أخرى لمعرفة  الأخطاء هي الخطأ الذي يقع في ملف cfcatch (ضمن مجلد C). فيما يلي شاشة الخطأ الخاصة ب cfcatch. يعطي سبب الخطأ رقم السطر الذي يوجد فيه الملف. من المهم في تفسير الخطأ ، مثل الوصول إلى الخطأ. على سبيل المثال ، في شاشة الخطأ الواردة أدناه ، تصبح معلمة التاريخ فارغة في الصفحة المسماة. في هذه الحالة ، عندما أريد إرسال قيمة فارغة ، يجب إضافة الشروط والتحكم.

مثال على الاستخدام:


مثال لقراءة الاخطاء

غير محدد

وهذا يعني حقل أو بيانات غير محددة. ويرجع ذلك في الغالب إلى عدم وجود تعريف

مثال: العنصر EXPENSE_ITEM_ID غير معرف في الفئة

التفسير: الحقل الوارد في استعلام الفئة غير موجود أو موجود والقيمة فارغة

الحل :  للتأكد من تحديد الحقل مع التحديد في الاستعلام المحدد للصفحة التي يحدث فيها الخطأ، أو إذا كان هناك، حيث يتم استخدام هذا الحقل

اسم عمود غير صالح

هذا يعني أنه لا يوجد عمود في قاعدة البيانات التي طلبها للاستعلام.

مثال:  اسم العمود غير صالح DIRECT_EXPENSE_CODE

التفسير: العمود DIRECT_EXPENSE_CODE غير موجود في الجدول المستخدم. هذا يعني أن هناك فرقًا بين قاعدة البيانات والكود.

الحل: فتح الحقل في الجدول المقابل أو تشغيل WRO المقابل.

لا يمكن إيجاد

هذا يعني أنه لا يمكن العثور على الملف المطلوب في السطر البرمجي

مثال: تعذر العثور على النموذج المضمن ../v16/e_government/query/netbook_status.cfm.

التفسير:  الملف المحدد في الكود في التطبيق المستخدم لا يوجد الملف.

الحل: إضافة ملف netbook_status.cfm ضمن الدليل ../v16/e_government/query/.

يشار إلى بنية CFML

عادة ما يتم مواجهة هذا الخطأ عندما يكون fuseaction خاطئًا

مثال: غير معرف في بنية CFML يشار إليه كجزء من تعبي.

التفسير:  مفقود، لا توجد module.

الحل:

رتبط اسم module  واسم الصفحة بنقطة لإنشاء fuseaction: module_name.page_name إذا تم إرسال fuseaction بشكل غير صحيح ، فيمكنك محاولة تحرير رمز الارتباط الذي نقرت عليه.

إذا كنت تعتقد أن قيمة fuseaction الخاصة بك صحيحة، فيمكنك تأكيد ما إذا كانت متوفرة على نظامك ودقتها من DevTools > Wo.

for CFSQLTYPE CF_SQL_INTEGER.?

يحدث هذا الخطأ عادة عند عدم إرسال النموذج الإلزامي - معلمات عنوان URL أو إرسال نوع بيانات غير صحيح. يتم استخدام علامة cfqueryparam لتعيين قيمة المعلمة وكتابتها عند إنشاء الاستعلام. في علامة cfqueryparam ، يحدث هذا الخطأ إذا لم تكن معلمة القيمة هي نوع البيانات المحدد في المعلمة cfsqltype. على سبيل المثال, 


في هذه الحالة، ستواجه خطأ في نوع البيانات غير صحيح لأنه تم إرسال نوع البيانات الخاطئ.

مثال: بالنسبة CF_SQL_INTEGER CFSQLTYPE

التفسير:  الملف المحدد في التعليمات البرمجية في التطبيق المستخدم غير موجود في التعليمات البرمجية المفقود.

الحل: 

  1. تحقق مما إذا كان عنوان URL أو النموذج قد تم إرساله مفقودا - بيانات غير صحيحة!
  2. أثناء تعيين المعلمات في الاستعلام، تأكد من إرسال معلمة القيمة بالنوع المطلوب في معلمة cfsqltype، في السطر الذي يعطي خطأ، في علامة cfqueryparam.
  3. ربما يتم طلب عدد صحيح أو نوع بيانات عشري، بينما يتم إرسال القيمة كنوع سلسلة!

خطأ في كتابة socket؟

  • قد تحتوي شبكتك على جدار حماية أو VPN يحظر الوصول إلى قاعدة البيانات.
  • يحدث هذا الخطأ عند تعذر إجراء اتصال قاعدة البيانات.
  • قد تكون تعريفات مصدر بيانات CF على خادم التطبيقات غير صحيحة أو قد تكون معلومات المستخدم قد تغيرت.
  • قد يكون خادم قاعدة البيانات معطلا أو لا يستجيب للطلبات

مثال: تم إنهاء الاتصال" أو رسالة خطأ يحتوي على "إعادة تعيين الاتصال بواسطة النظير: خطأ في كتابة مأخذ التوصيل

التفسير:  Fuseaction مفقود، لا توجد module.

الحل:  

  1. قم بتعطيل أي VPN قد يمنع وصولك إلى قاعدة البيانات.
  2. تحقق من إعدادات جدار الحماية. تأكد من صحة معلومات CF Datasource على خادم التطبيقات.
  3. تحقق من أن خادم قاعدة البيانات الخاص بك قيد التشغيل، واختبر ما إذا كان يستجيب للطلبات.


حدث استثناء عند إعداد معاملات خادم البريد.

التفسير: هو خطأ يحدث في إرسال البريد. يجب توفير التحكم من جانب الخادم.

الحل: 

  1. يجب فحص قيود جدار الحماية المُقدمة حديثًا وما إلى ذلك.
  2. تحقق مما إذا كان عنوان IP لخادم بريد cf قد تغير مؤخرًا (cf admin-server settings-mail >> خادم البريد)
  3. إعادة تشغيل خادم Coldfusion

اسم عمود مبهم وغير واضح "CATEGORY_ID"

التفسير:  هو اسم عمود يتم تقديمه بنفس الاسم بين جدولين على الأقل في الجداول المرتبطة في استعلامك. اسم العمود هذا هو قيمة CATEGORY_ID أعلاه

في هذه الحالة، نحتاج إلى تحديد العمود الذي نختار منه الجدول.

بمعنى آخر، تحتاج إلى تحديد ما إذا كان سيتم سحب قيمة العمود هذه من جدول الفئات أو جدول المنتجات.

مثال على الاستخدام:

     SELECT P.CategoryID FROM Products P  INNER JOIN Categories C ON C.CategoryID = P.CategoryID; 

لا يمكن ربط المعرف متعدد الأجزاء "P.PRODUCT_ID".

الخطأ هنا هو أن p لم يتم تعريفه.

مثال على الاستخدام:

الخطأ:

SELECT * FROM Company c INNER JOIN Products AS  ON c.CompanyID = P.PRODUCT_ID

التصحيح:

SELECT * FROM Company c INNER JOIN Products AS p ON c.CompanyID = P.PRODUCT_ID


اسم الكائن غير صالح / INFORMATION_SCHEMA.tables

التفسير: يعني أنك لم تحدد "قاعدة البيانات" للاستعلام.

  1. عند تشغيل هذا يدويًا في "أداة الإدارة"، يجب كتابة اسم قاعدة البيانات التي تستفسر عنها في الزاوية اليسرى التي يتم تحديد الشريحة الرئيسية منها.
  2. يجب تحديد اسم المخطط db في الاستعلام الذي كتبته في الكود. يجب كتابته كـ dbadi.tabloadi.

مثال على الاستخدام:

وركيوب يأتي مع قاعدة بيانات واحدة و4 مخططات.

  1. المخطط الرئيسي -DSN
  2. مخطط المنتج -DSN1
  3. مخطط الشركة -DSN3
  4. مخطط الفترة -DSN2



يمكن فصل البيانات الثنائية أو المتسلسلة. تم إنهاء العبارة

التفسير:  هذا الخطأ يعني أنه تم تجاوز حد الحقل الذي حددته في قاعدة البيانات. هذا يعني أن أحد الحقول في الاستعلام له حجم عمود منخفض.

زيادة عدد أحرف العمود ذي الصلة في قاعدة البيانات

لنفترض أن نوع حقل اسمك معرف على أنه nvarchar (50) وأن عدد الأحرف المسموح به هو 50 حرفًا. إذا تم إدخال أكثر من 50 حرفًا، فإنه يعطي خطأ ويمكن زيادته إلى nvarchar (100) في العمود المحدد.

>> انقر لقراءة مستند Adobe حول تصنيف أخطاء CFML.

?

?