พี่น้องที่ใช้ Rs.getrow ทุกคนรู้ว่า Rs.getrow สามารถรับข้อมูลความจุขนาดเล็กได้อย่างมีประสิทธิภาพมากขึ้น (ไม่เหมาะสำหรับข้อมูลความจุขนาดใหญ่โดยเฉพาะอย่างยิ่งเมื่อมันเกี่ยวข้องกับวัตถุขนาดใหญ่มันง่ายที่จะทำลายดังนั้นฉันจึงระเบิดครั้งเดียว) Puterjam ใช้อย่างดี
แต่ Rs.getrow ส่งคืนอาร์เรย์สองมิติและเรามักจะไม่รู้ว่าเซ็กเมนต์ใดที่ถูกต้องและส่วนใด นี่เป็นปัญหามากดังนั้นฉันจึงรวบรวมโปรแกรมเล็ก ๆ สำหรับการดีบัก:
สลัว
setObjrs = objconn.execute ("เลือก*จาก [blog_upload] โดยที่ ([ul_quote] เช่น '%" & cstr (id) & "%')"
ds = objrs.getrows
objrs.close ()
setObjrs = ไม่มีอะไร
'สร้างตาราง
Response.write "WrittenBySipo (www.dc9.cn) <tablealign =" "center" "border =" "1" ">"
Response.writevbcrlf
Response.write "<tr> <td> </td>"
forj = 0toubound (ds, 1)
Response.write "<td> ds (" & j & ", x) </td>"
ต่อไป
Response.write "</tr>"
'แต่ละบรรทัด
fori = 0toubound (ds, 2)
Response.write "<tr> <td> ds (x," & i & ") </td>" & vbcrlf
'แต่ละคอลัมน์
forj = 0toubound (ds, 1)
Response.write "<td>"
ifisnull (ds (j, i)) แล้ว
Response.write "null"
อื่น
Response.Writeds (J, I)
endif
Response.write "<br>"
Response.write "<b> ds (" & j & "," & i & ") </b>"
Response.write "</td>"
ต่อไป
Response.write "</tr>" & vbcrlf
ต่อไป
Response.end
-
อุทิศให้กับมือใหม่:
เกี่ยวกับ getrows:
ADO ยังมีวิธีการที่มีประสิทธิภาพมากขึ้นในการรับข้อมูล เมธอด getrows ส่งคืนตัวแปรอาร์เรย์สองมิติแต่ละแถวสอดคล้องกับระเบียนใน RecordSet และแต่ละคอลัมน์สอดคล้องกับฟิลด์ในบันทึก ไวยากรณ์ของวิธีนี้มีดังนี้:
vararray = rs.getrows ([แถว], [เริ่ม], [ฟิลด์])
แถวคือจำนวนระเบียนที่จะอ่าน หากคุณต้องการรับระเบียนทั้งหมดใน RecordSet คุณสามารถใช้ -1 หรือละเว้นพารามิเตอร์นี้ การเริ่มต้นเป็นบุ๊คมาร์คที่ระบุบันทึกแรกที่จะอ่าน นอกจากนี้ยังสามารถเป็นหนึ่งในค่าคงที่การแจงนับต่อไปนี้: 0-adbookmarkcurrent, 1-adbookmarkfirst หรือ 2-adbooklast