1
Nilai rs.recordcount dari mssql--asp adalah negatif 1.
Hanya ketika database dipanggil dalam mode ADO, ada jumlah catatan. Saat menggunakan prosedur tersimpan, Anda perlu menggunakan select count(*) from table_name untuk menghitungnya sendiri .
? Ini salah. Prosedur tersimpan juga bisa dibuka dengan basa-basi, misalnya: rs.open "exec SomeProc", conn, 1, 3. Solusi saya adalah rs.open sql,conn,1,1 untuk mengatasi masalah ini.
2
Biasanya orang menggunakan dua metode berikut untuk menjalankan pernyataan SQL:
Setel Rs=Samb.Jalankan(SqlStr)
Dan
Setel Rs=Server.CreateObject("ADODB.RecordSet")
Rs.Open SqlStr,Conn,CursorType,LockType
(metode objek RecordSet silakan lihat di sini)
Karena kursor recordset default adalah kursor server,
Rs.CursorLocation = adUseServer
Jadi kembalikan Rs.RecordCount=-1,
Kursor server harus diubah menjadi kursor klien.
Rs.CursorLocation = adUseClient
Rs.Open SqlStr,Conn,CursorType,LockType
rs.cursortype
atribut jumlah catatan tipe kursor
----------------------------------------
ForwardOnly 0 (default) mengembalikan -1
Keyset 1 jumlah catatan yang benar
Dinamis 2 -1 atau jumlah rekaman salah, bergantung pada sumber data
Statis 3 jumlah record yang benar
jadi Rs.CursorLocation = 3
Recordset.support("nama properti") dapat digunakan untuk menguji apakah properti tersebut didukung.
http://www.dwww.cn/new/20051128112149636.html
3
Setel oRs = Server.CreateObject("ADODB.RecordSet")
oRs.Buka sSql, oConn, 1, 1
Untuk membaca data,
gunakan Select Count(*) As RecordCount From [table]
oRs("RecordCount") untuk mendapatkan
atau menggunakan Do While Not oRs.Eof
Jumlah Catatan = Jumlah Catatan + 1
Lingkaran
4Database saya terhubung seperti ini:
strconn = "DRIVER=Driver Microsoft Access (*.mdb);DBQ=" & Server.MapPath("bbs.mdb")
set koneksi = server.createobject("adodb.koneksi")
samb.buka strconn
sql="PILIH * DARI spasi "
set rs=buat objek("adodb.recordset")
rs.open sql,conn,1,1
tetapi memang ada kumpulan record yang dikembalikan dan dapat ditampilkan