يعرف الإخوة الذين استخدموا RS.GetRow أن RS.GetRow يمكنهم الحصول على بيانات ذات قدرة صغيرة بشكل أكثر كفاءة (غير مناسبة للبيانات ذات السعة الكبيرة ، خاصة عندما تتضمن كائنات كبيرة ، من السهل كسرها ، لذلك انفجرت مرة واحدة). يستخدم بودرجام بشكل جيد.
لكن RS.GetRow يعيد صفيف ثنائي الأبعاد ، وغالبًا ما لا نعرف أي قطاع مناسب وأي شريحة. هذا أمر مزعج للغاية ، لذلك قمت بتجميع برنامج صغير للتصحيح:
Dimds
setObjrs = objconn.execute ("حدد*من [blog_upload] حيث ([ul_quote] مثل" ٪ "& cstr (id) و" ٪ ') "))
ds = objrs.getRows
objrs.close ()
setObjrs = لا شيء
"إنشاء جدول
Response.write "knergbysipo (www.dc9.cn) <tablealign =" "center" "border =" "1" ">"
استجابة. writevbcrlf
استجابة. write "<tr> <td> </td>"
forj = 0toubound (ds ، 1)
Response.write "<td> ds (" & j & "، x) </td>"
التالي
استجابة. "</tr>"
كل سطر
fori = 0Toubound (DS ، 2)
Response.write "<tr> <td> ds (x ،" & i & ") </td>" & vbcrlf
كل عمود
forj = 0toubound (ds ، 1)
استجابة. "<td>"
Ifisnull (ds (j ، i)) ثم
الرد. الكتابة "فارغة"
آخر
الرد
Endif
الرد. "<br>"
Response.write "<b> ds (" & j & "،" & i & ") </b>"
استجابة. "</td>"
التالي
استجابة. write "</tr>" & vbcrlf
التالي
استجابة
-----------------------------------------------------------------------------------
مكرسة للناشئين:
حول getrows:
يوفر ADO أيضًا طرقًا أكثر كفاءة للحصول على البيانات. تقوم طريقة getrows بإرجاع متغير صفيف ثنائي الأبعاد ، ويتوافق كل صف مع سجل في مجموعة السجلات ، ويتوافق كل عمود مع حقل في السجل. بناء جملة هذه الطريقة كما يلي:
vararray = rs.getrows ([صفوف] ، [ابدأ] ، [حقول])
الصفوف هي عدد السجلات التي سيتم قراءتها ؛ إذا كنت ترغب في الحصول على جميع السجلات في سجل السجلات ، يمكنك استخدام -1 أو حذف هذه المعلمة. START هي إشارة مرجعية تشير إلى أول سجل يتم قراءته ؛ يمكن أن تكون أيضًا واحدة من ثوابت التعداد التالية: 0-AdbookMarkCurrent ، 1-AdbookMarkFirst ، أو 2-AdbookMarklast.