ASP Aula 6: ASP e banco de dados (1)
Autor:Eve Cole
Data da Última Atualização:2009-05-30 19:55:05
Nas palestras anteriores, aprendemos o conteúdo básico do ASP. Usando esse conhecimento de forma flexível, você já pode usar o ASP para construir um site. Mas, de modo geral, um site real e completo não pode ser separado de um banco de dados, porque uma pequena quantidade de dados, como o número de visitantes da página web, pode ser armazenada em arquivos de texto, mas em aplicações reais, os dados que precisam ser salvo é muito mais do que isso, e esses dados geralmente estão relacionados, usando um banco de dados para gerenciar esses dados podem ser facilmente consultados e atualizados. Existem vários tipos de bancos de dados, como: banco de dados Fox (.dbf), banco de dados Access (.mdb), Informix, Oracle e SQL Server, etc. Nesta palestra, usarei o banco de dados Microsoft Access e SQL Server 7.0 como exemplos para ilustrar ASP como acessar o banco de dados. Por que escolher a ASP? As estatísticas mostram que o SQL Server 7.0 é atualmente o banco de dados mais rápido e econômico, e muitos sites grandes, como www.8848.net, www.dell.com, www.hotbot.com são criados usando tecnologia ASP, então ASP é uma tecnologia relativamente fácil de dominar e muito prática. Você deve tentar abordá-la, compreendê-la e então usá-la com confiança e coragem.
Quais preparativos devem ser feitos antes de um estudo mais aprofundado:
1. Se você nunca teve contato com um banco de dados, é recomendável instalar primeiro o Microsoft Access no Office e aprender os conhecimentos básicos de bancos de dados.
2. É melhor instalar o Microsoft SQL Server 7.0. Uma vez instalado, ele pode ser usado imediatamente sem nenhuma configuração. Observe que a versão DeskTop deve ser instalada no Windows 9.x, enquanto as versões anteriores à 7.0 só podem ser instaladas no NT Server.
3. O conteúdo discutido a seguir requer um componente chamado MDAC (Microsoft Data Access Components). Este componente já está incluído no ASP. Se você quiser saber mais sobre o conteúdo relevante ou baixar a versão mais recente, visite http://www. microsoft.com/data.
1. Estabelecendo uma conexão com o banco de dados Antes de começar oficialmente, deixe-me apresentar o ADO - ActiveX Data Objects Se você é novo neste conceito, você só precisa pensar no ADO como uma ponte entre o ASP e o banco de dados.
(1) Método 1 para estabelecer uma conexão com o banco de dados Microsoft Access: Exemplo wuf40.asp
<% @LANGUAGE = VBScript%>
<% 'wuf40.asp
Opção Explícita
Dim Cnn, StrCnn
' 1 - Criar objeto Conexão
Definir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Driver={Driver Microsoft Access (*.mdb)}; DBQ=" & Server.MapPath("asp") & "NorthWind.mdb;"
'2 - Abra o banco de dados usando o método Open do objeto Connection
Cnn.Open StrCnn
Response.Write Server.MapPath("asp") & "NorthWind.mdb;"
Response.Write "Conexão com o banco de dados bem-sucedida:" & Cnn.State & "<br>"
'3 - Fechar a conexão usando o método Close do objeto Connection
Cnn.fechar
Response.Write "O banco de dados foi fechado:" & Cnn.State
'4 - Exclua o objeto Connection da memória para liberar recursos
Definir Cnn = Nada
%>
Northwind.mdb é um banco de dados de exemplo que vem com o Microsoft Access97. Geralmente está localizado no diretório "Microsoft OfficeOfficeSamples". por exemplo, coloque-o em C:InetPubhomeasp).
Aqui, o método MapPath do objeto Servidor converte o caminho virtual especificado em um caminho de arquivo real e o resultado final é semelhante a: C:InetPubhomeaspNorthwind.mdb.
Método 2: Use OLE DB para criar uma conexão do Microsoft Access As partes principais estão listadas abaixo.
Definir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provedor = Microsoft.Jet.OLEDB.4.0; Fonte de dados = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
(2) Método 1 para estabelecer uma conexão com o banco de dados SQL Server: Use OLE DB para conectar-se ao SQL Server. Para detalhes, consulte a rotina wuf41.asp.
Definir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provedor=sqloledb; ID do usuário=sa; Senha=; Catálogo inicial=pubs; Fonte de dados=ICBCZJP"
Cnn.Open StrCnn
Especifique o nome do banco de dados após Catálogo inicial e o nome da máquina após Fonte de dados (ou seja, o nome do computador em Rede → Propriedades → Identidade) ou endereço IP (o serviço DNS precisa ser instalado).
Método dois:
Definir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Driver={SQL Server};Servidor=ICBCZJP;UID=sa;PWD=;Banco de dados=pubs"
Cnn.Open StrCnn
Além dos dois métodos acima, é claro que você também pode usar o método mais clássico apresentado em muitos artigos e materiais: usar ODBC para gerar uma conexão. Isso é primeiro estabelecer uma conexão em "Fontes de dados ODBC" no painel de controle do servidor Web e, em seguida, usar uma cadeia de conexão semelhante a "StrCnn ="DSN=ADOCnn; UID = sa;PWD=;Database=pubs"" em ASP. . Não vou apresentá-lo em detalhes aqui. Em primeiro lugar, este não é o melhor método. Em segundo lugar, outros materiais introduziram este método.
Além disso, caso tenha interesse, você pode baixar a rotina wuf42.asp para ver como utilizar as propriedades ConnectionTimeout e ConnectionString do objeto Connection.
2. O banco de dados começa aqui - recuperação de dados que já existem no banco de dados Agora presume-se que você já tenha o conhecimento mais básico de banco de dados e saiba como usar o Microsoft Access para abrir a tabela "Shipper" em Northwind.mdb e ver. os dados armazenados na tabela. Alguns dados. Agora a questão é como usar ASP para exibir esses dados no navegador. Aqui estão três métodos.
Lembrete especial: se a base do seu banco de dados for fraca, você só precisa usar o segundo método. Não seja ganancioso para evitar ir longe demais, então lembre-se! Lembrar!
Método 1: Use apenas o objeto Connection. Exemplo wuf43.asp
<% @LANGUAGE = VBScript%>
<% 'wuf43.asp
Opção Explícita
'Esta frase é muito importante, pode garantir que os dados que você vê não são os dados armazenados em cache no cliente.
'Mas os dados mais recentes atualizados a qualquer momento no lado do servidor
Resposta.Expira = 0
'Parte 1: Estabelecendo uma conexão
Dim Cnn, StrCnn
Definir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provedor = Microsoft.Jet.OLEDB.4.0; Fonte de dados = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
'Parte 2: Utilize o método Execute do objeto Connection para obter o recordset
Dim StrSQL, rsTest
'A seguir está uma instrução SQL (instrução de consulta estruturada), que não será apresentada em detalhes nesta palestra.'
'Esta frase significa selecionar todos os dados da tabela transportadora
StrSQL = "Selecionar * Do remetente"
Definir rsTest = Cnn.Execute(StrSQL)
%>
<HTML>
<CORPO>
<% 'Parte 3: Exibir o conjunto de registros obtido no navegador
'Loop até o final do registro - exibe linha por linha, registro por registro
Faça enquanto não rsTest.EOF
'As duas linhas a seguir têm o mesmo efeito, ou seja, rsTest("Shipper ID") é equivalente a rsTest(0)
Response.Write rsTest("ID do Remetente") & " " & rsTest("Nome da Empresa") & " " & rsTest("Telefone") & " " & "<BR>"
'Response.Write rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
'Mover para o próximo registro - esta frase não deve ser omitida, caso contrário cairá em um loop infinito
rsTest.MoveNext
Laço
'Parte 4: Limpando o campo de batalha
Cnn.fechar
Definir rsTest = Nada: Definir Cnn = Nada
%>
</BODY>
</HTML>
Este exemplo é muito simples. A terceira parte mostra os dados no estilo de saída típico do banco de dados. Você pode consultar o conhecimento que aprendeu antes e adicionar tabelas e cores para embelezar os resultados de saída.
Usuários não juniores podem consultar wuf44.asp para ver o uso completo do método Execute.
Método 2: Criando um objeto Recordset - lembre-se de que iniciantes só precisam dominar esse método.
Exemplo: wuf45.asp, outras partes são iguais a wuf43.asp, a chave está na segunda parte do programa.
'Parte 2: Obtenha o conjunto de registros criando um objeto RecordSet
Dim StrSQL, rsTest
'Criar objeto Recordset
Definir rsTest = Server.CreateObject("ADODB.Recordset")
StrSQL = "Selecione ID da operadora, número de telefone, nome da empresa Da operadora Onde número de telefone = '(503) 555-9931'"
'Anexa o objeto Recordset à conexão Cnn
Definir rsTest.ActiveConnection = Cnn
'Abra o recordset usando o método Open do objeto Recordset
rsTest.Open StrSQL
Agora vejamos o uso completo do método Open do objeto Recordset, por exemplo wuf48.asp.
<% @LANGUAGE = VBScript%>
<% 'wuf48.asp
Opção Explícita
Resposta.Expira = 0
%>
<!--#include file="adovbs.inc"-->
<%
'Parte 1: Estabelecendo uma conexão
Dim Cnn, StrCnn
Definir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provedor = Microsoft.Jet.OLEDB.4.0; Fonte de dados = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
'Parte 2: Obtenha o conjunto de registros criando um objeto RecordSet
Dim rsTeste
Definir rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.Open "Remetente",Cnn,adOpenForwardOnly,adLockReadOnly,adCmdTable
%>
<HTML>
<CORPO>
<% 'Parte 3: Exibir o conjunto de registros obtido no navegador
Faça enquanto não rsTest.EOF
Response.Write rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
rsTest.MoveNext
Laço
'Parte 4: Limpando o campo de batalha
rsTest.Close: Cnn.Close
Definir rsTest = Nada: Definir Cnn = Nada
%>
</BODY>
</HTML>
analisar:
1. Primeiro, observe as frases-chave:
rsTest.Open "Remetente",Cnn,adOpenForwardOnly,adLockReadOnly,adCmdTable
O primeiro parâmetro pode ser um nome de tabela (como: transitário) ou uma instrução SQL (como wuf45.asp).
O segundo parâmetro especifica a conexão atual.
O terceiro parâmetro indica o CursorType, que determina o tipo de cursor que o provedor deve utilizar ao abrir o Recordset. Isso usa um cursor que apenas avança.
O quarto parâmetro indica o LockType, que determina o tipo de bloqueio (simultaneidade) que o provedor deve utilizar ao abrir o Recordset. Especifique aqui somente leitura.
O quinto parâmetro está relacionado ao primeiro parâmetro. Se o primeiro parâmetro neste exemplo for o nome da tabela, o quinto parâmetro usará adCmdTable. Se o primeiro parâmetro for uma instrução SQL, o primeiro parâmetro será adCmdText, como:
rsTest.Open "Selecionar * Da operadora",Cnn,adOpenForwardOnly,adLockReadOnly,adCmdText
Não acho que a maioria das pessoas consiga realmente entender o significado desses cinco parâmetros. No início, apenas copie-os e use-os. perfeito à medida que nos acostumamos com eles.
Os dois parâmetros CursorType e LockType serão explicados em detalhes a seguir. Apenas para recuperar os dados, basta configurá-los conforme este exemplo.
2. Esses cinco parâmetros também podem ser definidos usando as propriedades do objeto Recordset, como wuf46.asp.
'Parte 2: Obtenha o conjunto de registros criando um objeto RecordSet
Dim rsTeste
Definir rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.ActiveConnection = Cnn
rsTest.CursorType = adOpenForwardOnly
rsTest.LockType = adLockReadOnly
rsTest.Open "Remetente", , , ,adCmdTable
3. Veja esta frase novamente: <!--#include file="adovbs.inc"-->.
(1) Como constantes como adOpenForwardOnly, adLockReadOnly e adCmdText são usadas, o arquivo adovbs.inc precisa ser incluído.
(2) O arquivo adovbs.inc geralmente está localizado no diretório Program FilesCommon FilesSYSTEMADO. Você pode copiá-lo para o diretório atual do servidor web (este arquivo também está incluído no pacote de download desta palestra). .
(3) Abra este arquivo com o Bloco de Notas e dê uma olhada, e você entenderá porque este arquivo é necessário.
Método três: introduzindo o objeto Command - isso deve ser estudado sob a premissa de que você é capaz.
<% @LANGUAGE = VBScript%>
<% 'wuf47.asp
Opção Explícita
Resposta.Expira = 0
%>
<!--#include file="adovbs.inc"-->
<%
'Parte 1: Estabelecendo uma conexão
Dim Cnn, StrCnn
Definir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provedor = Microsoft.Jet.OLEDB.4.0; Fonte de dados = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
'Parte 2: Obtenha o conjunto de registros criando um objeto Command
Dim StrSQL, rsTest, cmdTest
'Criar objeto Comando
Definir cmdTest = Server.CreateObject("ADODB.Command")
StrSQL = "SELECIONE MAX(quantidade) DOS detalhes do pedido"
cmdTest.CommandText = StrSQL
cmdTest.CommandType = adCmdText 'Indica que o tipo de comando é uma instrução SQL
Definir cmdTest.ActiveConnection = Cnn
'Use o método Execute do objeto Command para obter o conjunto de registros.
Definir rsTest = cmdTest.Execute
%>
<HTML>
<CORPO>
<% 'Parte 3: Exibir o conjunto de registros obtido no navegador
Faça enquanto não rsTest.EOF
Response.Write rsTest(0) & "<BR>"
rsTest.MoveNext
Laço
'Parte 4: Limpando o campo de batalha
rsTest.Close: Cnn.Close
Definir rsTest = Nada: Definir cmdTest = Nada: Definir Cnn = Nada
%>
</BODY>
</HTML>
O uso do objeto Command será explicado na programação aprofundada do banco de dados no futuro.
Esta palestra apresenta principalmente como se conectar ao banco de dados e recuperar dados do banco de dados. Os iniciantes ficarão inevitavelmente um pouco confusos. Lembre-se, você só precisa aprender os seguintes pontos de conhecimento.
1. Como usar OLE DB para estabelecer conexão com um banco de dados Microsoft Access;
2. Como usar OLE DB para estabelecer conexão com um banco de dados Microsoft SQL Server;
3. Como recuperar dados do banco de dados criando o objeto Recordset.