ไวยากรณ์ของ Rs.Open เป็นดังนี้: rs.Open Source, ActiveConnection, CursorType, LockType Source คือคำสั่ง sql, ActiveConnection คือการเชื่อมต่อฐานข้อมูล, CursorType คือเคอร์เซอร์ และ LockType คือประเภทการล็อคข้อมูล
ฉันมักจะพัฒนา asp แต่ฉันไม่แน่ใจเกี่ยวกับรายละเอียด นี่คือคำแนะนำสั้น ๆ
โดยทั่วไป
หากต้องการอ่านข้อมูล ให้ใช้ rs.open sql,conn,1,1
แก้ไขข้อมูล: rs.open sql,conn,1,3
ลบข้อมูล: ใช้โดยตรง conn.execute("ลบ * จากใหม่ โดยที่ id=1")
ไวยากรณ์ของ Rs.Open เป็นดังนี้: rs.Open Source,ActiveConnection,CursorType,LockType
Source คือคำสั่ง sql, ActiveConnection คือการเชื่อมต่อฐานข้อมูล, CursorType คือเคอร์เซอร์ และ LockType คือประเภทการล็อคข้อมูล
ประเภทเคอร์เซอร์
คำอธิบายคงที่
adOpenForwardOnly(value 0) (ค่าเริ่มต้น) เปิดเคอร์เซอร์ไปข้างหน้าเท่านั้น
adOpenKeyset (ค่า 1) เปิดเคอร์เซอร์ประเภทชุดคีย์
adOpenDynamic (ค่า 2) เปิดเคอร์เซอร์ประเภทไดนามิก
adOpenStatic (ค่า 3) เปิดเคอร์เซอร์ประเภทคงที่
ประเภทล็อค
คำอธิบายคงที่
adLockReadOnly (ค่า 1) (ค่าเริ่มต้น) อ่านอย่างเดียว - ข้อมูลไม่สามารถเปลี่ยนแปลงได้
adLockPessimistic (ค่า 2) การล็อกแบบอนุรักษ์นิยม (ทีละรายการ) — ผู้ให้บริการจะดำเนินการที่จำเป็นเพื่อให้แน่ใจว่าการแก้ไขระเบียนจะสำเร็จ โดยทั่วไปโดยการล็อกระเบียนของแหล่งข้อมูลทันทีเมื่อทำการแก้ไข
adLockOptimistic (ค่า 3) การล็อกแบบเปิด (ทีละรายการ) - ผู้ให้บริการใช้การล็อกแบบเปิดและล็อกเฉพาะระเบียนเมื่อมีการเรียกใช้วิธีการอัปเดตเท่านั้น
adLockBatchOptimistic (ค่า 4) การอัปเดตแบตช์แบบเปิด - ใช้ในโหมดการอัปเดตแบบแบตช์ (ตรงข้ามกับโหมดการอัปเดตทันที)
ประเภทเคอร์เซอร์
0 เฉพาะเคอร์เซอร์ไปข้างหน้า สามารถเรียกดูระเบียนไปข้างหน้าเท่านั้น ไม่รองรับเพจจิ้ง ชุดระเบียน บุ๊กมาร์ก
เคอร์เซอร์ชุดคีย์ 1 ตัว การแก้ไขที่ทำโดยผู้ใช้รายอื่นต่อบันทึกจะสะท้อนให้เห็นในชุดบันทึก แต่บันทึกที่เพิ่มหรือลบโดยผู้ใช้รายอื่นจะไม่สะท้อนให้เห็นในชุดบันทึก รองรับเพจ, ชุดระเบียน, บุ๊คมาร์ค
เคอร์เซอร์แบบไดนามิก 2 ตัวมีฟังก์ชันที่ทรงพลังที่สุด แต่ก็ใช้ทรัพยากรมากที่สุดเช่นกัน การแก้ไขที่ทำโดยผู้ใช้ในเรคคอร์ด การเพิ่มหรือการลบเรคคอร์ด จะสะท้อนให้เห็นในชุดเรคคอร์ด รองรับการท่องเว็บที่มีคุณสมบัติครบถ้วน
3. เคอร์เซอร์แบบคงที่เป็นเพียงภาพรวมของข้อมูล การปรับเปลี่ยนบันทึก การเพิ่ม หรือการลบบันทึกจะไม่สะท้อนให้เห็นในชุดบันทึก รองรับการเดินหน้าหรือถอยหลัง
ประเภทล็อค
LockType คือประเภทการล็อคของชุดระเบียน และค่าของมันคือ:
1 ประเภทการล็อค ค่าเริ่มต้น อ่านอย่างเดียว ไม่สามารถแก้ไขได้
2 ล็อคบันทึกทันทีเมื่อมีการแก้ไข วิธีที่ปลอดภัยที่สุด
3 ชุดระเบียนจะถูกล็อคเมื่อมีการเรียกใช้วิธีการอัปเดตเท่านั้น และการดำเนินการอื่นๆ ก่อนหน้านี้ยังคงสามารถเปลี่ยน แทรก และลบระเบียนปัจจุบันได้
4 บันทึกจะไม่ถูกล็อคเมื่อมีการแก้ไข และการเปลี่ยนแปลง การแทรก และการลบ
rs.open sql,conn,3,2
ทั้งสองนี้เป็นเคอร์เซอร์ หน้าที่เฉพาะของมันคือ:
RS.เปิด SQL,CONN,A,B
ตอบ:
ดำเนินการล่วงหน้า(=0)
อ่านอย่างเดียวและบันทึกข้อมูลปัจจุบันสามารถเลื่อนลงได้เท่านั้น
ชุดคีย์ ADOPEN(=1)
อ่านอย่างเดียว บันทึกข้อมูลปัจจุบันสามารถย้ายได้อย่างอิสระ
อุปนิสัย(=2)
สามารถอ่านและเขียนได้ บันทึกข้อมูลปัจจุบันสามารถย้ายได้อย่างอิสระ
วัยรุ่นคงที่(=3)
สามารถอ่านและเขียนได้ บันทึกข้อมูลปัจจุบันสามารถย้ายได้อย่างอิสระ สามารถดูบันทึกใหม่ได้
บี:
ล็อคแบบอ่านอย่างเดียว(=1)
ประเภทการล็อคเริ่มต้นคือชุดระเบียนเป็นแบบอ่านอย่างเดียวและไม่สามารถแก้ไขได้
ADLOCKPESSIMISTIC(=2)
การล็อคในแง่ร้าย เมื่อมีการแก้ไขบันทึก ผู้ให้บริการข้อมูลจะพยายามล็อคบันทึกเพื่อให้แน่ใจว่าแก้ไขบันทึกได้สำเร็จ ทันทีที่การแก้ไขเริ่มต้นขึ้น บันทึกจะถูกล็อค
ADLOCKOPTIMISTIC(=3)
การล็อกในแง่ดีไม่ล็อกเรกคอร์ดจนกว่าจะส่งเรกคอร์ดที่อัปเดตโดยใช้วิธีการอัปเดต
ADLOCKBATCHOPTIMISTIC(=4)
การล็อกในแง่ดีแบบแบตช์ช่วยให้สามารถปรับเปลี่ยนเรกคอร์ดได้หลายเรกคอร์ด และเรกคอร์ดจะถูกล็อคหลังจากเรียกใช้เมธอด UpdateBatch เท่านั้น
เมื่อไม่จำเป็นต้องแก้ไขระเบียน ควรใช้ชุดระเบียนแบบอ่านอย่างเดียวเพื่อให้ผู้ให้บริการไม่จำเป็นต้องทำการตรวจหาใดๆ
สำหรับการใช้งานทั่วไป การล็อคในแง่ดีอาจเป็นตัวเลือกที่ดีที่สุด เนื่องจากบันทึกจะถูกล็อคในช่วงเวลาสั้นๆ เท่านั้น
ข้อมูลจะได้รับการอัปเดตในช่วงเวลานี้ ซึ่งจะช่วยลดการใช้ทรัพยากร
สรุป:
sql,conn,1,1 หมายถึงไม่อนุญาตให้อัปเดต และโดยทั่วไปจะใช้สำหรับการดำเนินการสืบค้น
sql,conn,1,3 หมายความว่าอนุญาตให้อัปเดตได้ และโดยทั่วไปจะใช้สำหรับการแทรก อัปเดต และลบการดำเนินการ