1
قيمة rs.recordcount لـ mssql--asp هي سالبة 1.
فقط عندما يتم استدعاء قاعدة البيانات في وضع ADO، يكون هناك عدد سجلات عند استخدام إجراء مخزن، تحتاج إلى استخدام Select count(*) من table_name لحسابها بنفسك .
هذا غير صحيح. يمكن أيضًا فتح الإجراءات المخزنة مع اللغط، على سبيل المثال: rs.open "exec SomeProc"، conn، 1، 3. الحل الخاص بي هو rs.open sql، conn،1،1 لحل هذه المشكلة.
2
عادةً ما يستخدم الأشخاص الطريقتين التاليتين لتنفيذ عبارات SQL:
تعيين Rs=Conn.Execute(SqlStr)
و
تعيين Rs=Server.CreateObject("ADODB.RecordSet")
Rs.Open SqlStr,Conn,CursorType,LockType
(يُرجى الاطلاع على أساليب كائن مجموعة السجلات هنا)
نظرًا لأن مؤشر مجموعة السجلات الافتراضي هو مؤشر الخادم،
Rs.CursorLocation = adUseServer
لذا قم بإرجاع Rs.RecordCount=-1،
يجب تغيير مؤشر الخادم إلى مؤشر العميل.
Rs.CursorLocation = adUseClient
Rs.Open SqlStr، Conn، CursorType، LockType
rs.cursortype
سمة عدد السجلات لنوع المؤشر
----------------------------------------
ForwardOnly 0 (افتراضي) يُرجع -1
مجموعة المفاتيح 1 العدد الصحيح من السجلات
ديناميكي 2-1 أو عدد غير صحيح من السجلات، حسب مصدر البيانات
ثابت 3 العدد الصحيح للسجلات
لذلك Rs.CursorLocation = 3
يمكن استخدام Recordset.support("اسم الخاصية") لاختبار ما إذا كانت الخاصية مدعومة.
http://www.dwww.cn/new/20051128112149636.html
3
مجموعة oRs = Server.CreateObject("ADODB.RecordSet")
أورس.فتح سكل، أوكون، 1، 1
لقراءة البيانات،
وإلا استخدم Select Count(*) As RecordCount From [table]
oRs("RecordCount") للحصول على
أو استخدام Do while Not oRs.Eof
عدد السجلات = عدد السجلات + 1
حلقة
4قاعدة البيانات الخاصة بي متصلة بهذا الشكل:
strconn = "DRIVER=برنامج تشغيل Microsoft Access (*.mdb);DBQ=" & Server.MapPath("bbs.mdb")
مجموعة conn = server.createobject("adodb.connection")
conn.open strconn
sql="اختر * من الفضاء"
مجموعة rs=createobject("adodb.recordset")
rs.open sql,conn,1,1
ولكن هناك بالفعل مجموعة سجلات تم إرجاعها ويمكن عرضها