Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MarKteus

RecordCount contando errado?

Recommended Posts

Olá

 

Tenho uma linha de código que executa um SELECT e lê registros de uma tabela.
Para testar quantas linhas foram recuperadas uso o objRs.RecordCount. Realizando o select no banco eu já sei que o retorno é de apenas uma linha, porém ao testar na aplicação quantas linhas foram retornadas usando o RecordCount o ASP me mostra -1.

 

Alguém sabe o que pode ser isso , certo seria 1 ou estou enganado ?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Segue:


set CMD = Server.CreateObject("ADODB.Command")

set RDS = Server.CreateObject("ADODB.Recordset")


StrSql = "select"

StrSql = StrSql & " p.Pessoa,"

StrSql = StrSql & " p.Instituicao,"

StrSql = StrSql & " p.Unidade,"

StrSql = StrSql & " u.Unid"

StrSql = StrSql & " from"

StrSql = StrSql & " tbl_Pessoa p"

StrSql = StrSql & " left outer join Unidade u on p.Unidade = u.Unid"

StrSql = StrSql & " left outer join Instituicao e on u.Instituicao = e.Instituicao"

StrSql = StrSql & " where"

StrSql = StrSql & " and p.User = '" & pUser & "'"

StrSql = StrSql & " and p.Pass = '" & vPass & "'"


If Not IsEmpty(StrSql) Then

CMD.ActiveConnection = Create_ConStr ' <-- String de conexão

CMD.CommandText = StrSql

Set RDS = CMD.Execute


response.write "Registros encontrados: " & RDS.Recordcount & "<br>" ' Só pra certificar de que encontrar registros


If Not RDS.EOF Then

Validar = RDS.GetRows()

End If

End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

dependendo da situação melhor usar um contador normal ou a clausula count do SQL, pois se o seu bd for muito grande o recordcount do objeto recordset para apresentar queda de desempenho
e para usar o RecordCount , seu cursortype tem k ser recordset.CursorType = 3 (AdOpenDynamic)

exemplo:

<%
DIM mySQL, objRS
mySQL = "SELECT * FROM myTable"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open mySQL, objConn

' Count how many records exist
DIM iRecordCount
iRecordCount = 0
DO WHILE NOT objRS.EOF
iRecordCount = iRecordCount + 1
objRS.MoveNext
Loop

' Display result
Response.Write "(" & iRecordCount & ")"

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>

SQL COUNT

<!--#INCLUDE VIRTUAL="/includes/connection.asp" -->

<%
DIM mySQL, objRS
mySQL = "SELECT Count(*) AS intTotal FROM myTable"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open recSQL, objConn

' Display result
Response.Write objRS("intTotal")

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.