خطأ في جملة “insert into”


microsoft.netبرنامج الفيجوال ستديو ولغة vb.net، استعادة لياقة المبرمجين من جديد، فهي لغة مرنة مع المبرمج نفسه قبل المستخدم وسهلة أيضاً على المصمم قبل المبرمج. في  جميع لغات البرمجة يواجه المبرمج “رسائل الخطأ” التي تظهر عند تنفيذ البرنامج في أغلب الأحوال تقريباً، ولكل لغة طقوسها العقدية في كتابة الشيفرة البرمجية، والخطأ وارد ولا محال منه.




يختلف الخطأ كما ذكرنا سابقاً من لغة إلى لغة أخرى، فهناك لغات “دقيقة جداً ” فمثلاً لغة الجافا فإنها حساسة جداً لحالة الأحرف، فقد تقبل لغة الجافا a  ولكنها تعتبرك أخطأت لو كتبت A والعكس صحيح، أيضاً هناك لغات لا تظهر مكان وجود الخطأ بالتحديد، فتحصل الغلبة والمشقة داخل سطور الشيفرة لتعديل الخطأ!

بعد هذه المقدمة البسيطة حول الأخطاء والتي قد يطول الحديث عنها وأبخستها بسطوري السابقة -ليست محور مقالتي التعمق فيها- أحببت فقط أبين للقارىء معنى “الخطأ البرمجي”. فبالنسبة لمبرمجي الفيجوال بيسيك دوت نت، يتتبعون الأخطاء بمساعدة البرنامج نفسه وذلك لأن:

  • البرنامج يتيح الإكمال التلقائي للدوال والخصائص، فبمجرد كتابة  “اسم الأداة” ومن ثم تتبعها بـ (.)، تظهر قائمة منسدلة بجميع الدوال والخصائص التي تختص بها هذه الأداة، فتجد نفسك تكتب الكود بمساعدة شخص آخر يكتب معك.
  • البرنامج يظهر الخطأ بالتحديد، وذلك عن طريق رسالة تظهر في نافذة الأخطاء، وعند النقر المزدوج عليها تظهر لك سطر وجود الخطأ والشيفرة التي وجد بها الخطأ.
  • وهناك أخطاء تظهر بعد الضغط على زر تنفيذ البرنامج، مثل الأخطاء المرتبطة بـ Data Base.

بالرغم من هذه الميزات إلا أن خطأ “خطأ في جملة insert in to” أتعبني كثيراً، فتظهر الرسالة تنبأ بأن هناك خطأ في جملة الإدخال في قاعدة البيانات من نوع “ms access”، وعندما نمارس العادات الروتينة لإكتشاف الخطأ فنجد أن:

  • عدد الحقول المتضمنة في جملة insert هي نفسها عدد الحقول الموجودة في Table جدول قاعدة البيانات
  • مسمى الحقول في جملة insert هي نفس مسماها في Table جدول قاعدة البيانات
  • الفاصلة (،) التي تفصل كل حقل عن الآخر كتبت بشكل صحيح
  • اسم جدول قاعدة البيانات كتب بشكل مطابق وصحيح

ما الإشكال إذن، و ما الحل؟

بعد جهد جهيد تبين لي الخطأ الذي كنا نرتكبه على غفلة!

1- هو  أن أسماء الحقول في جملة insert قد تكون كلمات محجوزة في نفس اللغة فيكمن الخطأ فيه. والحل لن أستطيع أن أقول أو أدعي بحفظ جميع الكلمات المحجوزة حتى  لا نقع في الخطأ ذاته، لكن هناك طريقة أسهل وأفضل وهي عند كتابة أسماء الحقول لجدول الموظفين مثلاً، فبدل من أن نكتب الحقول بالشكل التالي:

id – name – date

نكتبها بالشكلين التاليين:

idemp-nameemp-dateemp

أو بأي طريقة تشاؤها، لكن أقصد بالطريقة الثانية هو أنك تتبع اسم الحقل باسم مختصر لاسم الجدول، وهذا سيقلل من احتمال وجود الخطأ.

2- التركيز في وضع العلامة (‘) إذا  كان المدخل من نوع string، وعدم وضع العلامة (‘) إذا كان المدخل number.

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

الفائدة والمتعة أرجوها لكم.. فردوس