تقدم هذه المقالة بشكل أساسي حل مشكلة تجاوز سعة ذاكرة استعلام ASP الغامض في ACCESS. سبب هذه المشكلة هو مشكلة ترميز الأحرف، والتي يتم حلها باستخدام وظيفة تحويل الترميز. يمكن للأصدقاء المحتاجين الرجوع إلى ما يلي
اليوم، أثناء قيامي بالصيانة اليومية لأحد مواقع الويب، اكتشفت أن برنامج الرسائل الخاص بموقع الويب لم يخضع للتحقق والتصفية الصارمة، مما أدى إلى وجود ما يقرب من 100000 قطعة من البيانات غير المرغوب فيها. فهي تحتوي على الكثير من المعلومات المهمة، الأمر الذي يتطلب تنظيف البيانات وإضافة إجراءات تحقق أكثر صرامة.
ومع ذلك، من غير العلمي الحذف مباشرة في قاعدة البيانات، وسيتم حذف الكثير من المعلومات المهمة عن طريق الخطأ.
من خلال عبارات الاستعلام الغامضة:
انسخ رمز الكود كما يلي:
حدد * من التعليقات حيث التعليقات مثل '%http%'
النتيجة: "نفاد الذاكرة"
وبعد البحث المستمر تم العثور على السبب الرئيسي للمشكلة:
عند استخدام الكلمة الأساسية LIKE للاستعلام عن الرموز اليابانية في asp، سيحدث خطأ، مثل Chr(-23075)، يشير إلى تجاوز سعة الذاكرة.
إذا كانت البيانات الموجودة في جدول البيانات تحتوي على أحرف يابانية أو بعض الأحرف الصينية الخاصة غير المبسطة، فستحدث أخطاء تجاوز سعة الذاكرة أيضًا.
يقال عبر الإنترنت أن المشكلة المذكورة أعلاه قد تم تأكيدها من قبل مهندسي Microsoft في Microsoft Power Camp وهي عبارة عن خطأ في المنتج لا يمكن حله. الطريقة الوحيدة هي تشفير بيانات قاعدة البيانات بأكملها إلى تنسيق نص ANSI ثم حفظها. فك التشفير مرة أخرى عند عرضه.
لا يوجد حل، والطريقة الوحيدة هي تحويل الحقل وحفظه إلى حقل جديد آخر كما هو مذكور أعلاه، ثم إجراء عملية التنظيف. من الصعب حقًا مواجهة هذه البيانات المفرطة.
تقوم الدالة EncodeString بتنفيذ عملية الهروب من الأحرف
انسخ رمز الكود كما يلي:
سلسلة ترميز الدالة (strWords)
خافت ط طالما
كلمات ترميز خافتة
لأني = 1 إلى لين (strWords)
strEncodeWords = strEncodeWords & CStr(Asc(Mid(strWords, i, 1))) & "،"
التالي
EncodeString = strEncodeWords
وظيفة النهاية
بعد الهروب بهذه الطريقة، أثناء البحث الغامض، قم بالهروب من الكلمات الرئيسية
انسخ رمز الكود كما يلي:
احذف * من التعليقات حيث Comments_new مثل '%&EncodeString("http")&%'