BUG: "ข้อผิดพลาดไวยากรณ์ในแทรก INTO..." บน Recordset.Update ADO

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:189220
บทความนี้ถูกเก็บถาวรแล้วเนื้อหาของบทความจึงถูกนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก
อาการ
เมื่อคุณเรียกใช้เมธอด AddNew จากนั้น ทำเรียกวิธีการปรับปรุงของชุดระเบียนเป็น ข้อผิดพลาดต่อไปนี้ถูกส่งกลับ:
ผู้ Microsoft OLE DB ให้สำหรับข้อผิดพลาดของโปรแกรมควบคุม ODBC '80040e21'
[Microsoft][odbc Microsoft Access 97 โปรแกรมควบคุม] ข้อผิดพลาดทางไวยากรณ์ในการแทรกลงในรายงาน
การใช้ version4.00.4202.00 โปรแกรมควบคุม ODBC เข้าถึงของ Microsoft หรือในภายหลัง เกิดข้อผิดพลาด:
ข้อผิดพลาดขณะเรียกใช้ ' -2147467259(80004005) ':
[Microsoft][odbc Microsoft ในการเข้าถึงโปรแกรมควบคุม]ข้อผิดพลาดไวยากรณ์ในแทรกไว้ในรายงาน
สาเหตุ
ข้อผิดพลาดนี้เกิดขึ้นหากต่อไปนี้เป็นจริง:
  • CursorType ถูก adOpenForwardOnly (0)
  • CursorLocation เป็น adUseServer
  • เขตข้อมูลถูกปรับปรุงมีช่องว่างในชื่อเขตข้อมูล
  • คุณกำลังใช้โปรแกรมควบคุม ODBC การเข้าถึงของ Microsoft
การเรียกวิธี AddNew และปรับปรุง บนเคอร์เซอร์ เอ็นต์เซิร์ฟเวอร์ ไปข้างหน้าอย่างเดียว ไม่มีการดำเนินการไม่ถูกต้อง วัตถุข้อมูล activex (ADO) compensates สำหรับปัญหานี้รหัส โดยการสร้างเป็นคำสั่ง INSERT เพื่อดำเนินการเมื่อการ ADO สร้างคำสั่ง INSERT ได้ไม่จำกัดชื่อฟิลด์ ดังนั้น ฟิลด์ชื่อที่ประกอบด้วยช่องว่างสร้างข้อผิดพลาดทางไวยากรณ์

ตัวอย่างเช่น งบ INSERT ที่ถูกต้องจะเป็นดังนี้:
   INSERT INTO Table ([field with space]) Values(value)				
ado สร้างรหัสต่อไปนี้:
   INSERT INTO Table (field with space) Values(value)				
การแก้ไข
ต่อไปนี้เป็นวิธีแก้ปัญหาต่าง ๆ ที่เป็นไปได้:
  • ไม่สามารถใช้ช่องว่างในชื่อเขตในฐานข้อมูลของคุณ
  • ใช้ CursorLocation ของ adUseClient (3)
  • ไม่สามารถใช้ CursorType ของ adOpenForwardOnly (0), เช่น adOpenKeyset (1), adOpenDynamic (2), หรือ adOpenStatic (3)
  • ทำการดำเนินการ โดยการสร้างคำสั่งของคุณเอง INSERT ด้วยตัวคั่นในฟิลด์ชื่อ แทนการใช้วิธี AddNew และการปรับปรุง
  • ใช้ผู้ที่ Microsoft OLE DB ให้สำหรับเวอร์ชัน Jet 3.51 หรือ 4.0 แทนของผู้ที่ Microsoft OLE DB ให้ ODBC และโปรแกรมควบคุม ODBC เข้าถึงของ Microsoft
สถานะ
Microsoft ได้รับการยืนยันนี้จะเป็นปัญหาที่เกิดขึ้นในผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ที่ตำแหน่งเริ่มต้นของบทความนี้

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 189220 - การตรวจสอบครั้งสุดท้าย: 12/05/2015 08:55:34 - ฉบับแก้ไข: 2.0

Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.6, Microsoft Data Access Components 2.7

  • kbnosurvey kbarchive kbbug kbdatabase kbdriver kbjet kbmt KB189220 KbMtth
คำติชม