Ir para conteúdo
Fórum Script Brasil
  • 0

Select Count(*)


mkboy

Pergunta

Quero contar o total de registros encontrados no banco.

To fazendo assim:

<%

dim objRS

dim objRS2

dim totalregistros

dim strrs

%>

<%

Set objRS2 = Server.CreateObject("ADODB.Recordset")

strrs = "SELECT COUNT(*) AS Total from bo"

objRS2.CursorLocation = 3 

objRS2.open strRS, conn, 0, 1

totalregistros = objRS(0)                       

if totalregistros = 0 then                           

    response.write "Nenhum registro"

else

%>

E no HTML ponho isso:

<%Response.Write totalregistros

  end if%>

E ta apresentando este erro:

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A000D)

Tipos incompatíveis: '[string: "nometeste"]'

/pescaki/v2/boletim/processa_01.asp, line 62

A linha 62 é essa:

totalregistros = objRS(0)   

E esse nome teste do erro é o nome que ta gravado no banco!!!

Ué!

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Bom dia..

quando eu quero contar os registros, eu faço assim:

Conecta ao banco:

url_conexao = Server.MapPath("banco.mdb")
set conexao = Server.CreateObject("ADODB.Connection")
conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao
montamos o sql:
sql = "select * from tabela"
set rs = conexao.execute(sql)
fazemos um loop contando os registros:
i = 0
do while not rs.eof
i = i+1
rs.movenext
loop

assim a variavel i vai conter o numero de registros.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

totalregistros = objRS(0)                       

if totalregistros = 0 then                           

    response.write "Nenhum registro"

else

Brother!!

Se você precisa verificar uma variavel(tipo texto) se esta vazia, experimente da seguinte forma:

<%  If TotalRegistros = "" Or TotalRegistro = EMPTY Then
 Response.Write ("Nenhum Registro")
 Else
 'Prossiga na rotina
 End if %>

Abraços!!!

[urso]

Link para o comentário
Compartilhar em outros sites

  • 0

Eu coloquei no meu codigo o sistema para contar, mas eu abri outra conexao, sera que pode fazer isso!!!

Agora ele ta escrevendo na tela a quantidade total de registros que tem no banco de dados, agora eu queria colocar neste código para ele mostrar somente quantos registros foram localizados pela busca.

O count da em vermelho:

<link rel=stylesheet type="text/css" href="folha.css">

<%

dim objRS

dim objRS2

dim totalregistros

dim strrs

cor_titulo = "#cccccc"

query = Request.querystring("query")

query = Replace(query,"'","''")

If query = "" then

response.redirect "busca.asp"

End if

Set conn = Server.CreateObject ("ADODB.Connection")

strconn = "Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("fish.mdb")

conn.open strconn

Set objRS = Server.CreateObject("ADODB.Recordset")

strrs = "Select * from bo where nome like'%" & query & "%' order by email"

objRS.open strrs, conn

If objRS.EOF Then

response.write "<center>"

response.write "<table  border=0 width="&"90%"&" cellspacing="&"0"&"  cellpaging="&"0"&">"

response.write "<tr><td><font class="&"padrão"&">Resultado da pesquisa:</font></td></tr>"

response.write "</table>"

response.write "<br>"

response.write "<table bgcolor="&"#000033"&" border=0 width="&"90%"&" cellspacing="&"0"&"  cellpaging="&"0"&">"

response.write "<tr><td>"

response.write "<table bgcolor="&"#ffffff"&" border=0 width="&"100%"&" cellspacing="&"0"&"  cellpaging="&"0"&">"

response.write "<tr><td bgcolor="&"#efefef"&"><font class="&"padrão"&">Nenhum registro encontrado.</font></td></tr>"

response.write "<tr><td><font class="&"padrão"&">Redefina sua busca.</font></a></td></tr>"

response.write "</table>"

response.write "</td></tr>"

response.write "</table>"

response.write "</center>"

End if

If erro <> "" Then

Response.Write mensagem

End if

Do While not objRS.Eof

%>

<HTML>

<head><title>Resultado da pesquisa</title>

</head>

<body>

<center>

  <table  border="0" width="90%" cellspacing="0"  cellpaging="0">

    <tr>

      <td><font class="padrão">

        <% Set Conexao = CreateObject("ADODB.CONNECTION")

Constr ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("fish.mdb")

Conexao.Open Constr

%>

<%

Set rs = Conexao.Execute("SELECT COUNT(*) AS total FROM bo")

Response.Write "Total de Registros: "& rs("total")

rs.Close

Set rs = Nothing

Conexao.Close %>

        </font> </td>

    </tr>

    <tr>

      <td>&nbsp;</td>

    </tr>

  </table>

<br>

<table bgcolor="#000033" border="0" width="90%" cellspacing="0"  cellpaging="0">

<tr><td>

<table bgcolor="#ffffff" border="0" width="100%" cellspacing="0"  cellpaging="0">

<tr><td>

<!--Faz um loop no banco e imprime os resultados-->

<%

If objRS.BOF or objRS.EOF Then

  response.write "Nenhum registro localizado."

Else

  cor="ffffff"

  response.write "<table border=0 cellpaging="&"0"&" cellspaging="&"0"&" width="&"100%"&">"

  response.write "<tr bgcolor="&cor_titulo&"><td><font class="&"padrão"&"><b>Nome:</b></font></td><td><font class="&"padrão"&"><b>E-mail:</b></font></td><td><font class="&"padrão"&"><b>Data:</b></font></td><td><font class="&"padrão"&"><b>Hora:</b></font></td><td><font class="&"padrão"&"><b>IP:</b></font></td><td><font class="&"padrão"&"><b>Editar:</b></font></td><td><font class="&"padrão"&"><b>Deletar:</b></font></td></tr>"

  Do While Not objRS.EOF

    if cor="ffffff" then

    cor="efefef"

else

  cor="ffffff"

  end if

  response.write  "<tr bgcolor="&cor&"><td><font class=""padrão"">"&objRS("nome")&"</font></td><td><a href=""mailto:" & objRs("email") & """>"& objRs("email") &"</a></td><td><font class=""padrão"">"&objRS("data")&"</font></td><td><font class=""padrão"">"&objRS("hora")&"</font></td><td><font class=""padrão"">"&objRS("ip")&"</font></td><td><a href='alterar.asp?id="&objRs("id")&"'>Editar</a></td><td><a href='deleta.asp?id="&objRs("id")&"'>Excluir</a></td></tr>"

    objRS.MoveNext

  Loop

  response.write "</table>"

End If

%>

<!--Fim do loop-->

 

<%

loop

objRS.close

conn.close

%>

</td></tr>

</table>

</td></tr>

</table>

  <p><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="JavaScript:voltar();" onMouseOver="window.status='Página Anterior '; return true" onMouseOut="window.status=''; return true">

    <script language="JavaScript">

<!--

function voltar()

{

if (history.length > 0){window.history.back();}

}

//-->

</script>

    Voltar</a></font> </p>

</center>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

  • 0

Dim SuaConexao, SuaSQL, SeuRecordSet

SuaConexao = Server.CreateObject("ADODB.Connection")

SuaSQL = "SELECT COUNT(*) AS total FROM SuaTabela"
SET SeuRecodSet = SuaConexao.Execute(SuaSQL)

Response.Write SeuRecordSet("total") 'voilá

Set SeuRecodSet = Nothing
Set SuaConexao = Nothing
...OU...
Dim SuaConexao, SuaSQL, SeuRecordSet
SuaConexao = Server.CreateObject("ADODB.Connection")

SuaSql = "SELECT * FROM SuaTabela"
SeuRecodSet.Open SuaSQL,SuaConexao,3,3

Response.Write SeuRecordSet.RecordCount

Set SeuRecodSet = Nothing
Set SuaConexao = Nothing

Dúvida minha:

Não sei, mas em qualquer código, será que precisaria limpar a variável SuaSQL (No caso, se a string SQL for dada apartir de uma variável, como no exemplo anterior (SuaSQL)) ?

E outra coisa... Devemos limpar TODAS as variáveis sempre?

Ou só essas de RecordSet e Conexao?

Eu pelo menos só estou limpando estas sempre.

Link para o comentário
Compartilhar em outros sites

  • 0

Devemos limpar TODAS as variáveis sempre?

Ou só essas de RecordSet e Conexao?

Brother!!

Sei lá cara, eu particularmente, sempre limpo o RecordSet e Conexão, pois vão vir novos dados na proxima manipulação, já as outras variaveis, como vou usa-las ou manipula-las.. não vejo necessidade.

Abraços!!

[urso]

Link para o comentário
Compartilhar em outros sites

  • 0
esse esquema que vc (guto) falou de limpar é set conexao = nothing?

Yeah! wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Marcelo Canevello Ferreira

quando você dá um Set RecordsetQualquer = Nothing você está destruindo o objeto recordset e liberando memória... ok

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...