ไม่ว่าจะเป็น rs.open sql, conn หรือ conn.execute(sql) [SQL ที่นี่คือลบ อัปเดต แทรก] หลังจากดำเนินการ ชุดบันทึกที่ปิดจะถูกส่งกลับ rs.open sql, conn: หาก sql ถูกลบ ให้อัปเดต ให้แทรกชุดบันทึกที่ปิดแล้วจะถูกส่งกลับ ในระหว่างการใช้งาน ห้ามเขียน rs.close แล้วเขียน rs.close ต่อท้ายไฟล์
สามารถมีได้หลายชุดระเบียน rs1.open sql1,conn ตรงกลาง และชุดสุดท้ายจะปิดชุดระเบียน: rs.close rs1.close
conn.execute(sql) หาก sql ถูกลบ อัพเดต หรือแทรก มันจะส่งคืนชุดบันทึกที่ปิดไป อย่าใช้ rs.close ระหว่างการใช้งาน และเขียน rs.close ที่ส่วนท้ายของไฟล์
ตรงกลางสามารถมีชุดระเบียนได้หลายชุด: rs1.open sql1,conn และชุดสุดท้ายจะปิดชุดระเบียน: rs.close rs1.close
หาก sql มีการอัปเดต แทรก ลบ คุณควรใช้ conn.execute(sql) หรือจะละวงเล็บ conn.execute sql ก็ได้
หาก sql เป็นคำสั่ง select คุณควรใช้ set rs=conn.execute(sql) วงเล็บต้องบังคับและไม่สามารถละเว้นได้ เนื่องจากนี่เป็นเพราะคุณสมบัติของ vbscript ที่มีค่าส่งคืน
การเรียกต้องอยู่ในวงเล็บ และการเรียกที่ไม่มีค่าส่งคืนไม่จำเป็นต้องมีวงเล็บ
หมายเหตุ: ไม่ว่าจะเป็น rs.open sql, conn หรือ conn.execute(sql) [SQL ที่นี่คือ ลบ อัปเดต แทรก] ชุดบันทึกที่ปิดจะถูกส่งกลับหลังการดำเนินการ
กล่าวอีกนัยหนึ่ง หาก sql เป็นคำสั่งแทรก อัปเดต หรือลบ ดังนั้น RS ในชุด rs=conn.execute(sql) จะไม่มีความหมาย
1.conn.execute
sql=select * จากผู้ดูแลระบบ โดยที่ชื่อผู้ใช้='xiaozhu'
ตั้งค่า rs=conn.execute(sql)
ปิดชุดบันทึกโดยอัตโนมัติหลังการดำเนินการ
สุดท้ายคุณเพียงแค่ต้องปิดการเชื่อมต่อ
เชื่อมต่อปิด
ตั้งค่า conn=ไม่มีอะไร
2.rs.open
ตั้งค่า rs=server.createobject (adodb.recordset)
sql=select * จากผู้ดูแลระบบ โดยที่ชื่อผู้ใช้='xiaozhu'
rs.open sql,conn,1,1
คุณสามารถตั้งค่าพารามิเตอร์บางอย่างได้ด้วยตัวเอง เช่น วิธีการล็อคและเลื่อนเคอร์เซอร์
สุดท้าย ปิดชุดระเบียนและการเชื่อมต่อ
RS.ปิด
ตั้งค่า rs=nothing
เชื่อมต่อปิด
ตั้งค่า conn=ไม่มีอะไร
3.command.execute
sql=select * จากผู้ดูแลระบบ โดยที่ชื่อผู้ใช้='xiaozhu'
ตั้งค่า rs=command.execute(sql)
************************************************** * ***************************
1.
set rs=conn.execute (หากเป็นคำสั่ง select) รับ rs.recordcount=-1
rs.open sql,conn (sql เป็นคำสั่ง select) จำนวน rs.record ที่ได้รับคือจำนวนบันทึกปกติ
2.
rs.open คือการเปิดฐานข้อมูล conn.execute คือการดำเนินการคำสั่ง SQL
set rs=conn.execute(insert,update,delete) ส่งคืนชุดระเบียนที่ปิด
set rs=conn.execute(select) ส่งคืนชุดระเบียนที่ไม่ได้ปิด
3.
CONN.EXECUTE (SQL, แถวที่ได้รับผลกระทบ, C)
ความหมายพารามิเตอร์:
ค่าของ SQL อาจเป็นคำสั่ง SQL ชื่อตาราง ชื่อกระบวนงานที่เก็บไว้ หรือสตริงใดๆ ที่ผู้ให้บริการข้อมูลยอมรับได้ เพื่อปรับปรุงประสิทธิภาพ วิธีที่ดีที่สุดคือระบุค่าที่เหมาะสมสำหรับพารามิเตอร์ C
พารามิเตอร์ทางเลือก RowsAffected จะส่งกลับตัวเลขที่ได้รับผลกระทบหลังจากดำเนินการแบบสอบถาม INSERT, UPDATE หรือ DELETE แบบสอบถามเหล่านี้จะส่งกลับวัตถุ Recordset ที่ปิด
แบบสอบถาม SELECT จะส่งกลับค่า RowsAffected เป็น -1 และส่งกลับชุดระเบียนเปิดที่มีเนื้อหาตั้งแต่หนึ่งแถวขึ้นไป
4.
conn.execute sql เหมาะสำหรับใช้เมื่อไม่จำเป็นต้องส่งคืนอ็อบเจ็กต์ชุดระเบียน เช่นโค้ดต่อไปนี้:
sql=delete จาก enews โดยที่ id=&cstr(id)
con.execute sql
หากคุณต้องการส่งคืนวัตถุชุดระเบียน ให้ใช้รหัสต่อไปนี้:
sql=select จาก enews โดยที่ id=&cstr(id)
ตั้งค่า rs = conn.execute (sql)
หากคุณลบวงเล็บในที่นี้ในการดำเนินการ (SQL) (นั่นคือ set rs = conn.execute sql) ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้น เช่น คำสั่งยังไม่สิ้นสุด ฉันดูที่รูปแบบไวยากรณ์และพบว่ามีสองรูปแบบ โดยมีรายละเอียดดังนี้
รูปแบบ 1: ชื่ออ็อบเจ็กต์การเชื่อมต่อ ดำเนินการ (คำสั่ง SQL)
รูปแบบ 2: ชื่ออ็อบเจ็กต์การเชื่อมต่อ ดำเนินการ (ชื่อตารางข้อมูล)
ดังที่เห็นได้จากรูปแบบข้างต้น คำสั่ง sql หลังจากดำเนินการจะรวมอยู่ในวงเล็บ แต่ในความเป็นจริงแล้ว หากคุณดำเนินการต่างๆ เช่น การลบหรือแก้ไข คุณไม่จำเป็นต้องรวมคำสั่ง sql ไว้ในวงเล็บเพื่อดำเนินการอย่างถูกต้อง นี่เหรอ? ในการดำเนินการค้นหา คุณต้องใส่คำสั่ง sql ไว้ในวงเล็บ ไม่เช่นนั้นจะเกิดข้อผิดพลาดขึ้น ฉันได้อ่านบทช่วยสอน ASP ทั้งหมดแล้ว และไม่มีใครพูดถึงปัญหานี้เลย ฉันได้ค้นหาแล้วไม่พบคำตอบ ด้วยเหตุผลอย่าพูดถึงกฎไวยากรณ์ฉันหวังว่าจะได้คำตอบที่ถูกต้องขอบคุณ