Leobreda.Net
HTML | DHTML | JavaScript | DOM | Ajax | Asp | Asp.net | PHP | Ms. SQL | MySQL
Pesquisa por: conexão sql
23 de setembro de 2008 22:00544 visitas
Existem mil maneiras para fazer com que sua aplicação se conecte a um banco de dados, desde as piores, até as mais eficientes.
Uma delas é aquela que você cria os objetos de conexão, informa as strings de conexão, monta a query, lê os resultados e esquece que tem que destruir o objeto (é, infelizmente o Prof. Agnaldo esqueceu de comentar isso quando eu aprendi ASP na Impacta). No final do dia, você tem um computador de última geração com processador em 99% de uso e não sabe o que aconteceu.
No meu caso foi assim: meu primeiro programa foi montar um sistema que consultava uns dados no banco de dados, populava os mesmos numa tabela e fim de papo; quando a gente é iniciante, fica se gabando com aquelas páginas rodando no IIS com dados dinâmicos e esquece aquelas hospedagens gratuitas do tempo do Geocities.
Voltando para o programa, TODAS as páginas eu colocava logo na primeira linha um INCLUDE contendo os dados de conexão com o Banco de dados, e abria logo de cara, mesmo sem necessidade de utilizar Banco de Dados em algumas páginas.
O include CONEXAO.ASP seria este aqui:
Set objConexao = CreateObject("ADODB.Connection")
'MySQL
objConexao.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=leobredacom; User=root;Password=root;Option=3;"
objConexao.Open()
E esta seria uma página
<!--#include file="conexao.asp"-->
Olá, agora são <%=now()%>
Olha a tremenda merda que eu fiz: para escrever "Hello, Wordl!" não precisa de Banco de Dados.
E esta seria uma outra página, agora sim conectando a um banco de dados ;-)
<!--#include file="conexao.asp"-->
Olá, agora são <%=now()%>
<% strSQL = "SELECT ESTADO_DESC FROM TB_ESTADO WHERE PAIS='Brasil' ORDER BY ESTADO_DESC"
set objRecordset = CreateObject("ADODB.Recordset") : objRecordset.Open strSQL, objConexao
while NOT objRecordset.EOF%>
Estado: <%=ObjRecordset("ESTADO_DESC")%><br/>
<% objRecordset.MoveNext : Wend : objRecordset.Close : set objRecordset = Nothing : objConexao.Close : Set objConexao = Nothing
%>
*DICA: Experimente colocar várias instruções na mesma linha E separadas por ":" (dois pontos). Assim não precisa ficar aquele monte de linha com apenas 3 palavras.
O resultado do Recordset acima faria retornar todos os Estados do Brasil. Mas ainda assim:
Estudando um pouco mais, tive a necessidade de descobrir uma maneira mais eficiente (eu não tinha usado a lógica) de contornar este problema.
Então faria assim:
E cada vez que eu preciso de consultar o Banco de Dados, faço esta rotina repetidamente, desta maneira:
O include CONEXAO.ASP
Dim objConexao
sub abreconexao()
Set objConexao = CreateObject("ADODB.Connection")
objConexao.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=leobredacom; User=root;Password=root;Option=3;"
objConexao.Open()
end sub
sub fechaconexao
objConexao.Close : Set objConexao=Nothing
end sub
Já esta página, agora TODA VEZ QUE preciso conectar ao banco de dados, chamo a função abreConexao()
<!--#include file="conexao.asp"-->Olá, agora são <%=now()%>
<% strSQL = "SELECT ESTADO_DESC FROM TB_ESTADO WHERE PAIS='Brasil' ORDER BY ESTADO_DESC"
call abreConexao() : set objRecordset = CreateObject("ADODB.Recordset") : objRecordset.Open strSQL, objConexao
while NOT objRecordset.EOF%>
Estado: <%=ObjRecordset("ESTADO_DESC")%><br/>
<% objRecordset.MoveNext : Wend : objRecordset.Close : set objRecordset = Nothing : call fechaConexao()%>
Este é um método eficiente de conectar ao Banco de dados APENAS quando desejamos.
No próximo POST, estarei incrementando este artigo, na qual é possível montar uma GRID separando o HTML do ASP - ver Spaghetti.