อาการ
เมื่อคุณแสดงตัวอย่างรหัสที่เขียนใน Visual Basic สคริปต์ในเบราว์เซอร์ ปรากฏข้อความแสดงข้อผิดพลาดต่อไปนี้:
Microsoft VBScript คอมไพล์ข้อผิดพลาด '800a03e9' หน่วยความจำ
สาเหตุ
VBScript ที่มีสายอักขระแบบคงสูงสุดขีดจำกัดของอักขระ 1,022 และข้อผิดพลาดนี้ปรากฏขึ้น ทุกครั้งที่บรรทัดของรหัสเกิน 1,022 อักขระ
การแก้ไข
โดยส่วนใหญ่ บรรทัดของรหัสข้อผิดพลาดเป็นคำสั่ง SQL เนื่องจากใบแจ้งยอดที่เลือกอาจมีขนาดใหญ่มาก คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้เพื่อหลีกเลี่ยงปัญหานี้:
-
ถ้าเลือกไปกับตารางเดียว เอานำหน้า "ตาราง" ด้านหน้าของแต่ละคอลัมน์
-
สร้างตัวแปรเพื่อเก็บคำสั่ง select และเชื่อม SQL เหนือบรรทัดหลายบรรทัดต่อไปนี้:
MySQL = "SELECT table.col1, table.col2 "MySQL = MySQL & "FROM table "MySQL = MySQL & "Where x = 3"
-
ถ้าจำนวนของคอลัมน์จะค่อนข้างเล็ก แต่คำสั่ง select เลือกจากหลายตาราง สร้างมุมมอง เลือกเทียบกับมุมมอง ละเว้นนำหน้า "ตาราง" หน้าคอลัมน์
-
สำหรับ SQL ที่ไม่ใช่บรรทัดของรหัสที่มีขนาดใหญ่เกินไป คุณสามารถใช้วิธีการแก้ปัญหาที่สองที่แสดงรายการไว้ก่อนหน้า
สถานะ
พฤติกรรมเช่นนี้เกิดจากการออกแบบ