1
El valor rs.recordcount de mssql--asp es negativo 1.
Solo cuando se llama a la base de datos en modo ADO, hay un recuento de registros. Cuando utilice un procedimiento almacenado, debe utilizar select count(*) de table_name para contarlo usted mismo. .
? Esto es incorrecto. Los procedimientos almacenados también se pueden abrir con ado, por ejemplo: rs.open "exec SomeProc", conn, 1, 3. Mi solución es rs.open sql,conn,1,1 para resolver este problema.
2
Por lo general, la gente usa los dos métodos siguientes para ejecutar declaraciones SQL:
Establecer Rs=Conn.Execute(SqlStr)
y
Establecer Rs=Server.CreateObject("ADODB.RecordSet")
Rs.Open SqlStr,Conn,CursorType,LockType
(métodos del objeto RecordSet, consulte aquí)
Dado que el cursor del conjunto de registros predeterminado es el cursor del servidor,
Rs.CursorLocation = adUseServer
Entonces devuelve Rs.RecordCount=-1,
El cursor del servidor debe cambiarse a un cursor de cliente.
Rs.CursorLocation = adUseClient
Rs.Open SqlStr,Conn,CursorType,LockType
rs.cursortype
atributo de recuento de registros de tipo de cursor
----------------------------------------
ForwardOnly 0 (predeterminado) devuelve -1
Conjunto de claves 1 número correcto de registros
Dinámico 2 -1 o número incorrecto de registros, según la fuente de datos
Estático 3 número correcto de registros
, por lo que Rs.CursorLocation = 3
Recordset.support("nombre de propiedad") se puede utilizar para probar si la propiedad es compatible.
http://www.dwww.cn/new/20051128112149636.html
3
Establecer oR = Server.CreateObject ("ADODB.RecordSet")
oRs.Abrir SQL, oConn, 1, 1
Para leer datos,
de lo contrario utilice Select Count(*) As RecordCount From [table]
oRs("RecordCount") para obtener
o usar Do While Not oRs.Eof
CuentaRegistros = CuentaRegistros + 1
Bucle
4Mi base de datos está conectada así:
strconn = "DRIVER=Controlador de Microsoft Access (*.mdb);DBQ=" & Server.MapPath("bbs.mdb")
establecer conexión = server.createobject("adodb.conexión")
conn.open strconn
sql="SELECCIONAR * DESDE el espacio"
establecer rs=createobject("adodb.recordset")
rs.open sql,conn,1,1
pero de hecho se devuelve un conjunto de registros y se puede mostrar