1. Rs.Open SQL, Conn, A, B, C
2. Conn.execute (SQL, Rowsaffected, C)
1. Conn.execute (SQL, Rowsaffected, C)
พารามิเตอร์ความหมาย:
ค่าของ SQL สามารถเป็นคำสั่ง SQL ชื่อตารางชื่อขั้นตอนที่เก็บไว้หรือสตริงใด ๆ ที่ผู้ให้บริการข้อมูลสามารถยอมรับได้ เพื่อปรับปรุงประสิทธิภาพควรระบุค่าที่เหมาะสมสำหรับพารามิเตอร์ C
พารามิเตอร์เสริม rowsaffected
1. หลังจากการแทรกการอัปเดตหรือลบการสืบค้นจะถูกดำเนินการแล้ว Rowsaffected จะส่งคืนจำนวนของผลกระทบและการสืบค้นเหล่านี้จะส่งคืนวัตถุชุดบันทึกปิด
2. แบบสอบถามที่เลือกจะส่งคืนค่า rowsaffected ที่ -1 และชุดบันทึกเปิดที่มีเนื้อหาหนึ่งแถวขึ้นไป
<%set conn = opendatabase '(สำหรับรายละเอียดของฟังก์ชั่น opendatabase โปรดดู: วิธีการสร้างการเชื่อมต่อด้วยการเข้าถึงและฐานข้อมูล MSSQL ใน ASP) conn.execute อัปเดตตารางที่ 1 ตั้งค่า col1 =' 123 ', rowsaffected, & h0001Response.write rowsaffected & rowsacted closeset conn = ไม่มีอะไร%>
2. Rs.Open SQL, Conn, A, B, C
ตั้งค่า rs = server.createObject (adodb.recordset) sql = xxxxrs.open sql, conn, 1,1, & h0001irs = rs.getrows (10)
&H0001 หมายถึงอะไร? เมื่อฉันเห็นสิ่งนี้ครั้งแรกฉันก็สับสนอยู่พักหนึ่ง ตอนนี้ข้อมูลเว็บไซต์เกี่ยวกับเรื่องนี้กำลังบินไปทั่วโลก ให้ฉันพูดถึงที่นี่มีคำแนะนำเฉพาะในคำอธิบายพารามิเตอร์ต่อไปนี้
พารามิเตอร์: ประเภทเคอร์เซอร์
const Adopinwardonly = 0 อ่านอย่างเดียว, ค่าเริ่มต้น เคอร์เซอร์ได้รับอนุญาตให้ก้าวไปข้างหน้าระหว่างระเบียนภายในชุดบันทึก การปนเปื้อน, recordset, บุ๊คมาร์คไม่ได้รับการสนับสนุน
const AdopenKeyset = 1 อ่านอย่างเดียวเคอร์เซอร์ชุดคีย์บันทึกข้อมูลปัจจุบันสามารถเคลื่อนย้ายได้อย่างอิสระและการแก้ไขที่ทำโดยผู้ใช้รายอื่นในบันทึกจะสะท้อนให้เห็นในชุดระเบียน แต่ผู้ใช้รายอื่นเพิ่มหรือลบบันทึกจะไม่ถูกสะท้อน ในชุดบันทึก รองรับการปนเปื้อน, recordset, บุ๊กมาร์ก
const Adopendynamic = 2 สามารถอ่านและเขียนได้บันทึกข้อมูลปัจจุบันสามารถเคลื่อนย้ายได้อย่างอิสระฟังก์ชั่นเคอร์เซอร์แบบไดนามิกนั้นแข็งแกร่งที่สุด แต่ก็ใช้ทรัพยากรมากที่สุด การดัดแปลงการเพิ่มหรือการลบบันทึกโดยผู้ใช้ในบันทึกจะสะท้อนให้เห็นในชุดระเบียน รองรับการเรียกดูแบบเต็มรูปแบบ (การเข้าถึงไม่รองรับ)
const Adopenstatic = 3 เคอร์เซอร์แบบคงที่เป็นเพียงภาพรวมของข้อมูล สนับสนุนการเคลื่อนไหวไปข้างหน้าหรือย้อนหลัง
พารามิเตอร์ B: ประเภทล็อค
const adlockreadonly = 1 ค่าเริ่มต้นชุดระเบียนเป็นแบบอ่านอย่างเดียวและไม่สามารถแก้ไขได้
const adlockpessimistic = 2 'ล็อคจิตวิทยาล็อคบันทึกทันทีเมื่อแก้ไขเพื่อให้แน่ใจว่าประสบความสำเร็จในการแก้ไขบันทึก วิธีที่ปลอดภัยที่สุด
const dlockoptimistic = 3 'การล็อคในแง่ดีบันทึกจะไม่ถูกล็อคจนกว่าบันทึกการอัปเดตจะถูกส่งโดยใช้วิธีการอัปเดต
const dlockbatchoptimistic = 4 'การล็อคในแง่ดีของแบทช์อนุญาตให้แก้ไขหลายระเบียนและบันทึกจะถูกล็อคหลังจากเรียกใช้วิธีการอัปเดต
เมื่อไม่จำเป็นต้องมีการเปลี่ยนแปลงบันทึกใด ๆ ควรใช้ชุดเร็กคอร์ดแบบอ่านอย่างเดียวเพื่อให้ผู้ให้บริการไม่จำเป็นต้องทำการตรวจจับใด ๆ สำหรับการใช้งานทั่วไปการล็อคในแง่ดีอาจเป็นตัวเลือกที่ดีที่สุดเนื่องจากบันทึกถูกล็อคเป็นระยะเวลาสั้น ๆ และข้อมูลจะได้รับการปรับปรุงในช่วงเวลานี้ สิ่งนี้จะช่วยลดการใช้ทรัพยากร
C พารามิเตอร์: (ระบุประเภทคำสั่ง SQL)
const adcmdunknown = & h0008 'ไม่ทราบระบบจำเป็นต้องตัดสินความเร็วช้าค่าเริ่มต้น
const adcmdtext = & h0001 'ส่วนของ SQL จะถูกดำเนินการ
const adcmdtable = & h0002 'จะใช้งานตาราง
const adcmdstoredproc = & h0004 'ชื่อขั้นตอนที่เก็บไว้จะดำเนินการ
const adcmdfile = & h0100 'ชื่อไฟล์ที่สอดคล้องกันของประเภทวัตถุ
const adcmdtabledirect = & h0200 'เป็นชื่อตารางที่สามารถรับเนื้อหาแถวโดยตรงจากตาราง
3. ความแตกต่างระหว่าง Rs.Open และ Conn.execute
Rs.Open SQL, Conn
หาก SQL ถูกลบ, อัปเดต, แทรกมันจะส่งคืนชุดบันทึกปิด และในที่สุดก็ปิดระเบียนที่ตั้งไว้ในชิ้นเดียว: Rs.close rs1.close
conn.execute (SQL)
หาก SQL ถูกลบ, อัปเดต, แทรกมันจะส่งคืนชุดบันทึกปิด และในที่สุดก็ปิดการบันทึกที่ตั้งไว้ด้วยกัน: Rs.close Rs1.close
หาก SQL ได้รับการปรับปรุงให้แทรกลบดังนั้น conn.execute (SQL) ควรใช้หรือไม่มีวงเล็บ conn.execute SQL
หาก SQL เป็นคำสั่ง SELECT คุณควรใช้ set rs = conn.execute (SQL) วงเล็บและต้องไม่ถูกละเว้น
นี่เป็นเพราะลักษณะของ VB
1. Conn.execute
SQL = SELECT * จากผู้ดูแลระบบที่ชื่อผู้ใช้ = 'Xiaozhu'Set rs = conn.execute (SQL)' ปิดชุดเร็กคอร์ดโดยอัตโนมัติหลังจากดำเนินการ 'ในที่สุดเพียงปิดการเชื่อมต่อก็เพียงพอ
2. Rs.Open
ตั้งค่า rs = server.createObject (adodb.recordset) sql = select * จากผู้ดูแลระบบที่ชื่อผู้ใช้ = 'Xiaozhu'rs.open sql, conn, 1,1' คุณสามารถตั้งค่าพารามิเตอร์ด้วยตัวคุณเอง หากต้องการปิดชุดระเบียนและเชื่อมต่อ rs.closeset rs = nothingconn.loseset conn = ไม่มีอะไร
3. command.execute
SQL = เลือก * จากผู้ดูแลระบบที่ชื่อผู้ใช้ = 'Xiaozhu'
ตั้งค่า rs = command.execute (SQL)
1.
ตั้งค่า rs = conn.execute (ถ้าเป็นคำสั่งเลือก) Rs.RecordCount ที่ได้รับ = -1
Rs.Open SQL, Conn (SQL เป็นคำสั่ง SELECT) Rs.RecordCount ที่ได้รับคือจำนวนบันทึกปกติ
2.
Rs.Open คือการเปิดฐานข้อมูล conn.execute คือการดำเนินการตามคำสั่ง SQL
ตั้งค่า rs = conn.execute (แทรก, อัปเดต, ลบ) ส่งคืนชุดบันทึกปิด
ตั้งค่า rs = conn.execute (เลือก) ส่งคืนชุดระเบียนที่ไม่ปิด
3.
conn.execute (SQL, Rowsaffected, C)
พารามิเตอร์ความหมาย:
ค่าของ SQL สามารถเป็นคำสั่ง SQL ชื่อตารางชื่อขั้นตอนที่เก็บไว้หรือสตริงใด ๆ ที่ผู้ให้บริการข้อมูลสามารถยอมรับได้ เพื่อปรับปรุงประสิทธิภาพควรระบุค่าที่เหมาะสมสำหรับพารามิเตอร์ C
พารามิเตอร์ที่เป็นตัวเลือก rowsaffected จะส่งคืนจำนวนผลกระทบหลังจากการดำเนินการของการแทรกอัปเดตหรือลบแบบสอบถาม แบบสอบถามเหล่านี้ส่งคืนวัตถุชุดบันทึกปิด
แบบสอบถามที่เลือกจะส่งคืนค่า rowsaffected ที่ -1 และชุดบันทึกเปิดที่มีเนื้อหาหนึ่งแถวขึ้นไป
4.
conn.execute SQL เหมาะสำหรับใช้เมื่อไม่มีการส่งคืนวัตถุบันทึกเช่นรหัสต่อไปนี้:
sql = ลบจากข่าวที่ id = & cstr (id)
conn.execute SQL
หากคุณต้องการส่งคืนวัตถุ RecordSet ให้ใช้รหัสต่อไปนี้:
sql = เลือกจากข่าวที่ id = & cstr (id)
ตั้งค่า rs = conn.execute (SQL)
หากคุณลบวงเล็บใน Execute (SQL) (นั่นคือ Set Rs = Conn.execute SQL) มันจะแจ้งให้ทราบว่าคำสั่งไม่สิ้นสุด โดยละเอียดดังนี้:
รูปแบบ 1: ชื่อวัตถุเชื่อมต่อ execute (คำสั่ง SQL)
รูปแบบที่ 2: ชื่อวัตถุเชื่อมต่อ execute (ชื่อตารางข้อมูล)
conn.execute (SQL) (0) เป็นค่าของฟิลด์แรกของชุดข้อมูล
conn.execute (SQL) ส่งคืนชุดระเบียน
conn.execute SQL ไม่ส่งคืนชุดบันทึก โดยทั่วไปใช้สำหรับการแทรกอัปเดตการลบและการดำเนินการอื่น ๆ โดยไม่มีค่าส่งคืน