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

Usando Get Rows


felipefrancesco

Pergunta

Pessoal,

Como tem muita gente perguntando sobre o getRows e como trabalhar com array, esse é um conjunto de funções e sub-rotinas para trabalhar com dados. Isso tudo pode ser colocado em um só arquivo e usado como include.

Obs: A conexão está sendo feita para o MySql, para outros bancos é só trocar a string smile.gif

<%
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
' ::: CONSTANTES UTILIZADAS (PODEM SER CRIPTOGRAFADAS)
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
const cStrUsuario = "usuario"      ' ::: Usuário para o banco
const cStrSenha   = "senha"        ' ::: Senha para o banco
const cStrHost    = "192.168.0.1"  ' ::: Host onde encontra-se o banco
const cStrDB      = "banco"        ' ::: Nome do banco de dados
const cBlnDebug   = true           ' ::: Se verdadeiro, está em modo de depuração
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
' ::: DECLARANDO VARIÁVEIS PÚBLICAS
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Dim aryDados  ' ::: Array de dados padrão
Dim oConn     ' ::: Objeto de conexão padrão
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
' ::: SUB-ROTINA PARA ABRIR UMA CONEXÃO COM O BANCO
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Sub abreConexao()
 ' ::: Pula os erros
 On Error Resume Next

 Dim strConn ' ::: Variável receberá a string de conexão

 ' ::: Instancia o objeto de conexão
 set oConn = server.CreateObject("ADODB.Connection")

 ' ::: Atribui a string de conexão
 strConn = "DRIVER={MySQL};SERVER=" & cStrHost & _
           ";DATABASE=" & cStrDB & _
           ";USER=" & cStrUsuario & _
           ";PWD=" & cStrSenha

 ' ::: Abre a conexão
 oConn.open strConn

 ' ::: Tratamento de Erros
 if err <> 0 and cBlnDebug then
  response.write "Erro na abertura da conexão<BR>" & _
                 "<b>Descrição:</b>" & err.description & "<BR>" & _
                 "<b>String:</b>" & strConn & "<BR>"
  response.end
 end if

End Sub
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
' ::: SUB-ROTINA PARA FECHAR UMA CONEXÃO COM O BANCO
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Sub fechaConexao()
 ' ::: Pula os erros
 On Error Resume Next

 ' ::: Fecha a conexão
 oConn.close

 ' ::: Tratamento de Erros
 if err <> 0 and cBlnDebug then
  response.write "Erro no fechamento da conexão<BR>" & _
                 "<b>Descrição:</b>" & err.description & "<BR>"
  response.end
 end if

 ' ::: Destrói a instãncia do objeto
 set oConn = nothing
End Sub
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
' ::: FUNÇÃO PARA EXECUTAR COMANDOS DML (Data Manipulation Language)
' ::: Ex: Insert, Update, Delete
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
function executaDML(byVal pSql)
 ' ::: Pula os erros
 On Error Resume Next

 Dim blnRetorno     ' ::: Valor booleano q conterá o resultado da função
 blnRetorno = false ' ::: A função retorna falso a priori

 Dim oRs            ' ::: Objeto recordset

 if pSql <> "" then

  ' ::: Abre a conexão com o banco
  call abreConexao()
  
  ' ::: Instancia o objeto recordset
  set oRs = server.createObject("ADODB.Recordset")

  ' ::: Executa a cláusula sql, atribuindo ao recordset
  set oRs = oConn.execute(pSql)

 ' ::: Tratamento de Erros
 if err <> 0 and cBlnDebug then
  response.write "Erro ao executar comando DML<BR>" & _
                 "<b>Descrição:</b>" & err.description & "<BR>" & _
                 "<b>String:</b>" & pSql & "<BR>"
  response.end

 elseif err = 0 then ' ::: Sem erros, retorna verdadeiro
  blnRetorno = true
  
 end if

  ' ::: Fecha o recordset
  oRs.close
  
  ' ::: Destrói instância do objeto
  set oRs = nothing
  
  ' ::: Fecha a conexão
  call fechaConexao()

 end if

 ' ::: Retorna o resultado
 executaDML = blnRetorno
end function
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
' ::: SUB-ROTINA QUE EXECUTA UMA CONSULTA, ATRIBUINDO AO ARRAY PADRÃO
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Sub consulta(byVal pSql)
 ' ::: Pula os erros
 On Error Resume Next

 if pSql <> "" then

  ' ::: Abre a conexão com o banco
  call abreConexao()

  ' ::: Instancia o objeto recordset
  set oRs = server.createObject("ADODB.Recordset")

  ' ::: Executa a cláusula sql, atribuindo ao recordset
  set oRs = oConn.execute(pSql)

  ' ::: Tratamento de Erros
  if err <> 0 and cBlnDebug then
   response.write "Erro ao executar consulta<BR>" & _
                  "<b>Descrição:</b>" & err.description & "<BR>" & _
                  "<b>String:</b>" & pSql & "<BR>"
   response.end
  end if

  ' ::: Atribui o resultado do recordset ao array
  ' ::: Se a consulta não retornar valores, o valor virá numa string vazia ""
  aryDados = oRs.getRows()
  
  ' ::: Fecha o recordset
  oRs.close

  ' ::: Destrói instância do objeto
  set oRs = nothing

  ' ::: Fecha a conexão
  call fechaConexao()

 end if
End Sub
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
' ::: SUB-ROTINA QUE EXECUTA UMA CONSULTA, ATRIBUINDO AO ARRAY PASSADO
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Sub consultaParam(byVal pSql, byRef pAry)

 ' ::: Pula os erros
 On Error Resume Next

 if pSql <> "" then

  ' ::: Abre a conexão com o banco
  call abreConexao()

  ' ::: Instancia o objeto recordset
  set oRs = server.createObject("ADODB.Recordset")

  ' ::: Executa a cláusula sql, atribuindo ao recordset
  set oRs = oConn.execute(pSql)

  ' ::: Tratamento de Erros
  if err <> 0 and cBlnDebug then
   response.write "Erro ao executar consulta<BR>" & _
                  "<b>Descrição:</b>" & err.description & "<BR>" & _
                  "<b>String:</b>" & pSql & "<BR>"
   response.end
  end if

  ' ::: Atribui o resultado do recordset ao array
  pAry = oRs.getRows()

  ' ::: Fecha o recordset
  oRs.close

  ' ::: Destrói instância do objeto
  set oRs = nothing

  ' ::: Fecha a conexão
  call fechaConexao()

 end if

End Sub
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
%>
Agora, dois exemplos, primeiro para executar um insert:
<%
Dim strSql
strSql = "INSERT INTO pdt_produto(pdt_vchNome) VALUES('teste')"

if executaDML(strSql) then
 response.write "Inclusão com sucesso!!"
else
 response.write "Erro durante inclusão!"
end if
%>
Executando uma consulta e escrevendo a lista:
Dim strSql, i
strSql = "SELECT campo1, campo2 FROM tabela"
call consulta(strSql)

if isArray(aryDados) then
 for i = 0 to uBound(aryDados,2)
  response.write "<tr>" & _
                 " <td>"&aryDados(0,i)&"</td>" & _
                 " <td>"&aryDados(1,i)&"</td>" & _
                 "</tr>"
 next
end if

É isso ai!!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...