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
<%
' ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
' ::: 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
Pergunta
felipefrancesco
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
<% ' :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ' ::: 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:É isso ai!!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.