1
O valor rs.recordcount de mssql--asp é negativo 1.
Somente quando o banco de dados é chamado no modo ADO, há um recordcount. Ao usar um procedimento armazenado, você precisa usar select count(*) from table_name para contá-lo você mesmo. .
?Isso está errado. Os procedimentos armazenados também podem ser abertos com ado, por exemplo: rs.open "exec SomeProc", conn, 1, 3. Minha solução é rs.open sql,conn,1,1 para resolver esse problema.
2
Normalmente as pessoas usam os dois métodos a seguir para executar instruções SQL:
Definir Rs=Conn.Execute(SqlStr)
e
Definir Rs=Server.CreateObject("ADODB.RecordSet")
Rs.Open SqlStr,Conn,CursorType,LockType
(métodos do objeto RecordSet, veja aqui)
Como o cursor do conjunto de registros padrão é o cursor do servidor,
Rs.CursorLocation = adUseServer
Então retorne Rs.RecordCount=-1,
O cursor do servidor deve ser alterado para um cursor do cliente.
Rs.CursorLocation = adUseClient
Rs.Open SqlStr,Conn,CursorType,LockType
rs.cursortype
tipo de cursor atributo recordcount
----------------------------------------
ForwardOnly 0 (padrão) retorna -1
Conjunto de chaves 1 número correto de registros
Dinâmico 2 -1 ou número incorreto de registros, dependendo da fonte de dados
Estático 3 número correto de registros
, então Rs.CursorLocation = 3
Recordset.support("property name") pode ser usado para testar se a propriedade é suportada.
http://www.dwww.cn/new/20051128112149636.html
3
Definir oRs = Server.CreateObject("ADODB.RecordSet")
ouRs.Open sSql, oConn, 1, 1
Para ler dados,
caso contrário, use Select Count(*) As RecordCount From [table]
oRs("RecordCount") para obter
ou usar Do While Not oRs.Eof
Contagem de registros = Contagem de registros + 1
Laço
4Meu banco de dados está conectado assim:
strconn = "DRIVER=Driver Microsoft Access (*.mdb);DBQ=" & Server.MapPath("bbs.mdb")
definir conexão = server.createobject("adodb.connection")
conn.open strconn
sql="SELECIONE *FROM espaço"
definir rs=createobject("adodb.recordset")
rs.open sql,conn,1,1
mas de fato há um conjunto de registros retornado e pode ser exibido