Leobreda.Net
HTML | DHTML | JavaScript | DOM | Ajax | Asp | Asp.net | PHP | Ms. SQL | MySQL
Pesquisa por: include
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.
11 de setembro de 2008 22:02338 visitas
Por mais que o ASP venha a ser substituído pela nova geração ASP.Net, venho utilizando a mesma constantemente. É uma linguagem fácil, possui o conceito de POG, mas vamos lá.
No ASP.Net, costuma-se utilizar uma ferramenta chamada MASTER PAGES; esta página, por exemplo, utiliza esta ferramenta.
Para entender melhor, uma página normal é constituída da seguinte maneira:
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
AQUI VAI O CONTEÚDO
</body>
</html>
Vamos melhorar um pouco mais... Imagine que você tenha um site igual o meu, e o menu ao lado que quase nunca muda, onde o mesmo aparece em todas as páginas. Ficaria fácil separar esta página em 4 partes:
Este é o código padrão (Sem divmania, porque os engenheiros da Fundação Mozila e os da Microsoft não são os mesmos que adotaram padrões W3C, ok?):
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<div id="topo">
Aqui vai o topo
</div>
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td id="menu">
Menu
</td>
<td id="conteudo">
Conteúdo
</td>
</tr>
</table>
<div id="rodape">
Rodapé
</div>
</body>
</html>
Este é o mesmo código padrão, dividido em 3 partes e utilizando o método INCLUDE:
Topo + menu - arquivo topo.asp
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<div id="topo">
Aqui vai o topo
</div>
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td id="menu">
Menu
</td>
<td id="conteudo">
Conteúdo
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Rodapé - arquivo rodape.asp
</td>
</tr>
</table>
<div id="rodape">
Rodapé
</div>
</body>
</html>
Finalmente, temos a página com conteúdo da seguinte maneira:
<!--#include file="topo.asp">
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
<!--#include file="rodape.asp">
Para trocar o título de TODAS as páginas que você criou, abra o arquivo TOPO.ASP e edite o parâmetro.
Fazendo este procedimento, ganhamos produtividade, entre elas: