ASP tem uma das funções mais importantes, que permite conectar-se ao banco de dados com muita facilidade. Geralmente ele está conectado a um banco de dados Access ou SQL. Como o Access é o mais fácil de começar e o Access pode já estar instalado em sua máquina, usaremos o Access nos exemplos a seguir. Depois de aprender os principais métodos técnicos de conexão de bancos de dados ASP e Access, ao começar a usar o SQL Server, você descobrirá que as principais tecnologias necessárias para ambos são basicamente as mesmas.
Crie um nome de fonte de dados (DSN)
Você pode disponibilizar seu banco de dados para uso em ASP criando um DSN de sistema para seu banco de dados no painel de controle. Você pode criar vários DSNs em seu computador local, cada DSN correspondendo a um banco de dados diferente que você usa. Depois de configurar o DSN, você pode testar sua página no servidor local. Se o seu site for
atendido por um ISP e o ISP oferecer suporte a ASP, é muito provável que ele forneça uma interface GUI para criar um DSN para seu banco de dados.
No Windows 95/98/NT, abra o Painel de Controle (Menu Iniciar -> Configurações -> Painel de Controle) e clique duas vezes em ODBC para entrar.
Selecione o DSN do sistema e clique em Adicionar.
Selecione "Driver Microsoft Access" e clique em Concluir.
Preencha o nome da fonte de dados. Este é o nome que você dá ao seu banco de dados, portanto é a mesma operação que um alias.
Clique no botão Selecionar na seleção do banco de dados para navegar até o local no sistema onde o banco de dados Access que você criou está armazenado.
Clique em OK
O novo DSN agora aparecerá no DSN do sistema e estará disponível em seu servidor local.
Conectando-se ao banco de dados Vamos configurar uma conexão sem DSN e ver como conectar-se ao banco de dados. Ao criar um DSN, você já armazena algumas informações sobre o banco de dados, portanto não precisa repeti-lo toda vez que precisar utilizar alguma informação como tipo de banco de dados, nome, local de armazenamento e propriedades opcionais, usuários e senhas.
Para criar uma conexão sem DSN, você precisa fornecer as mesmas informações. O exemplo a seguir mostra como estabelecer uma conexão sem DSN com um banco de dados chamado produtos:
<%
StrConnect = "Driver={Driver do Microsoft Access (*.mdb)}; DBQ=C:dbproducts.mdb"
Definir objConn = Server.CreateObject ("ADODB.Connection")
objConn.OpenStrConnect
%>
A segunda linha define o driver e o caminho físico do banco de dados. Para usar uma conexão sem DSN, você precisa saber a localização real do arquivo (caminho absoluto). Server.MapPath fornece um ambiente de trabalho simples para qualquer pessoa que use serviços de hospedagem para encontrar caminhos de acesso reais difíceis de encontrar.
Se criamos um DSN de sistema denominado produtos, o código de conexão deverá ser:
<%
Definir objConn = Server.CreateObject ("ADODB.Connection")
objConn.Open "produtos"
%>
Agora que o banco de dados está aberto, o que você pode fazer? A primeira coisa, claro, é ler uma série de registros no banco de dados e colocá-los em sua página. Mas, antes disso, você precisa de um conjunto de registros.
Conjunto de registros
Um conjunto de registros é toda a informação armazenada em uma tabela especial do banco de dados. Portanto, quando você abre esse conjunto de registros, o conteúdo de todas as linhas e colunas da tabela fica acessível. Você precisa abrir esse conjunto de registros da mesma forma que precisa abrir a conexão com o banco de dados. Seus comandos são semelhantes:
Set objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "downloadable", strConnect, 0,1,2
cria um conjunto de registros (objRec) denominado tabela para download, que é definido em strConnect no banco de dados de produtos. Usando Recordset open, podemos percorrer esta tabela e exibir todo o seu conteúdo na tela. Alternativamente, podemos testar o conteúdo de campos específicos ou apenas escrever na tela o que nos interessa.
Cada coluna representa um campo. Portanto, se a tabela do banco de dados for assim:
ID do produto | Nome | do SKU | Arquivo |
1 | PR12345 | Produto A | install_a.exe |
2 | PR12346 | Produto B | Install_b.exe |
Temos então o conteúdo dos seguintes campos: ProductID, SKU, Name e File. Sua tabela provavelmente terá muitos campos adicionais, que podem conter muitas coisas, como preço ou descrição do produto (item). Mas este diagrama esquemático pode fornecer o conceito mais básico de tabelas de banco de dados.
Preencher o conteúdo do conjunto de registros é muito fácil usando o conjunto de registros. Se quiser percorrer o banco de dados e imprimir todas as informações na tela, você pode fazer o seguinte:
While NOT objRec.EOF
' diz para fazer isso desde que não tenhamos chegado ao final do arquivo
Response.WriteobjRec("ProductID") & ", "
Response.WriteobjRec("SKU") & ", "
Response.WriteobjRec("Nome") & ", "
Response.WriteobjRec("Arquivo") & "<BR>"
objRec.MoveNext
Vendemos;
Mesmo que você não tenha usado loops dessa maneira, ainda poderá ler esse código para gravar informações em strings delimitadas por vírgulas e, quando uma nova linha for criada na tabela do banco de dados, criar uma nova linha para registrar essa linha na tabela. Você pode usar o mesmo método para gravar dados em uma tabela HTML. Ao usar Response.Write para adicionar suas tags TABLE, há algumas coisas que você deve ter em mente:
suas tags HTML e o conteúdo entre aspas.
Se suas tags ou conteúdo usarem aspas, certifique-se de usar aspas duplas:
<TAMANHO DA FONTE=""+2"">.
Use & para conectar variáveis e informações de HTML/conteúdo para selecionar campos no conjunto de registros. Suponha que nosso banco de dados de produtos também contenha um campo chamado SO. Novamente, vamos supor que os dados armazenados neste campo só podem ser os seguintes: Windows NT, Windows 95, Windows 98, Windows, Mac, Unix ou Linux.
A seguir, podemos confirmar quais campos precisamos imprimir na tela e quais campos queremos ignorar. Alternativamente, podemos selecionar quais campos usam um formato e outros campos usam um formato diferente, por exemplo, usando cores diferentes.
Usar um loop If... simples pode nos dar mais controle sobre o banco de dados. Primeiro, vamos imprimir registros sobre produtos Windows NT:
<TABLE BORDER=0 WIDTH=600>
<TR><TD COLSPAN=4 ALIGN=CENTER><FONT SIZE="+1"<<B>Produtos Windows NT</B></FONT></TD></ TR>
<%
Enquanto NOT objRec.EOF
If objRec("OS") = "Windows NT" THEN ' especifica os critérios
Response.Write "<TR><TD BGCOLOR=""#FFFF66"">" & objRec("ProductID") & " </TD>"
Response.Write "<TD>" & objRec("SKU") & "</TD>"
Response.Write "<TD>" & objRec("Nome") & "</TD>"
Response.Write "<TD>" & objRec("Arquivo") & "</TD></TR>"
fim se
objRec.MoveNext
Wend
%>
</TABELA>
Adicionando um registro Depois de começar a usar conjuntos de registros e ASP, você realmente desejará poder adicionar dados ao banco de dados pela rede. Adicionar conteúdo é importante, por exemplo, quando você precisa que os visitantes da web deixem seus pontos de vista e opiniões, ou quando deseja realizar atualizações administrativas.
O código a seguir abre um conjunto de registros relacionado a uma tabela do banco de dados com os nomes dos livros e seus autores. Você provavelmente já viu isso antes, mas desta vez, as três últimas especificações definem diferentes tipos de ponteiro: adOpenStatic, adLockOptimistic, adCmdTable:
<% 'código de conexão de banco de dados já feito;
Definir objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "livros", bookdb, adOpenStatic, adLockOptimistic, adCmdTable
%>
O conjunto de registros agora está pronto para receber dados, você só precisa
).
para dizer o que adicionar. Neste caso, digamos que pegamos as variáveis da tabela: strBookTitle e strBookAuthor. Nossa tabela, livros, possui dois campos chamados Título e Autor, portanto podemos adicionar um novo registro usando a seguinte instrução:
<%
objRec.AddNew
ObjRec("Título") = strTítuloDoLivro
objRec("Autor") = strLivroAutor
objRec.Update
%>
strBookTitle e strBookAuthor representam valores e geralmente são acessados pelos usuários. Se você quiser apenas testar a funcionalidade de adição, poderá adicionar uma variável para título e autor - lembre-se de usar aspas. Na primeira vez que você usá-lo, provavelmente abrirá seu banco de dados imediatamente para garantir que as atualizações aconteçam.
Tipo de conjunto de registros No exemplo objRec.Open mostrado, você encontrará as palavras 0, 1 e 2 no final. Esses números representam diferentes tipos de ponteiros. O tipo que você usa depende da finalidade para a qual você o usará. Por exemplo, se não precisar modificar ou adicionar nenhum registro, você poderá usar um tipo Lock. Quando você planeja modificar ou atualizar o banco de dados, o tipo escolhido será diferente.
0,1,2 na verdade representa:
adOpenForwardOnly, adLockReadOnly, adCmdTable
Claro, se você já possui um backup de adovbs.inc em seu servidor, você também pode usar essas palavras diretamente, sem usar números. adovbs.inc contém essas três constantes e uma lista de outras constantes.