Como acessar o SQL Server no Active Server Pages

Traduções deste artigo Traduções deste artigo
ID do artigo: 169377 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve como estabelecer conexões com o SQL Server em um script ASP usando o ActiveX Data Objects (ADO), enquanto aproveita do recurso pool de conexão do ODBC 3.0.



Mais Informações

Pool de conexão

Habilita o pool de conexão do ODBC.
Para obter informações adicionais sobre o pool de conexão e instruções sobre como habilitar este recurso, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
164221 Como habilitar o pool de conexão em um aplicativo do ODBC

DSN do ODBC

Se você usar o administrador ODBC, crie um DSN (Nome da fonte de dados) de sistema no computador no qual o IIS (Serviços de informações da Internet da Microsoft) está instalado. Especifique uma vez o atributo de conexão e use novamente em todas as páginas. Por exemplo, no evento Session_OnStart no arquivo Global.asa, defina o atributo da conexão como:
   Session("ConnectionString") =
   "dsn=SQLSysDSN;uid=<username>;pwd=<strong password>;DATABASE=pubs;APP=ASP Script"				
Verifique se todas as condições a seguir são verdadeiras:
  • A caixa Conexões confiáveis não está marcada na definição DSN de sistema.
  • O modo de segurança do SQL Server não é integrado ao Windows NT.
  • No atributo da conexão, o uid não está em branco.
Caso contrário, uma conexão com o SQL Server poderá falhar e a seguinte mensagem de erro será exibida:

Erro '80004005' do provedor Microsoft OLE DB para os drivers ODBC
[Microsoft][ODBC SQL Server Driver][SQL Server] Falha de logon- Usuário: _
Motivo: Não definido como usuário válido de uma conexão de SQL Server confiável.

Global.asa

O uso do arquivo Global.asa é opcional. Em seu lugar, as entradas normalmente feitas neste arquivo podem ser colocadas na primeira página chamada pelo aplicativo. Se você assumir que os scripts ASP estão localizados em uma pasta que não está definida como um diretório virtual no Gerenciador de serviços da Internet, mas abaixo de outro diretório virtual, o arquivo Global.asa que contém variáveis da sessão e definições DSN deve ser mantido no diretório virtual. Caso contrário, a seguinte mensagem de erro será exibida:

Erro '80004005' do provedor Microsoft OLE DB para os drivers ODBC
[Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e
nenhum driver padrão especificado

Conexões em um script ASP

Aproveite as vantagens de um pool de conexão, abrindo e fechando a conexão com o banco de dados em todas as páginas do active server. Para abrir a conexão, digite as seguintes declarações na seção <Body> da página:
   <%
   Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
   OBJdbConnection.Open Session("ConnectionString")   %>				
Para fechar a conexão, coloque o seguinte imediatemente após a tag </Body>:
   <%
   OBJdbConnection.Close
   Set OBJdbConnection = Nothing
   %>				
É possível que as duas seguintes mensagens de erro sejam exibidas se as configurações de conexão não estiverem definidas corretamente como foi descrito anteriormente neste artigo:

Erro '80004005' do provedor Microsoft OLE DB para os drivers ODBC
[Microsoft][ODBC SQL Server Driver][DBNMPNTW]Conexão interrompida.
-ou-

Erro '80004005' do provedor Microsoft OLE DB para os drivers ODBC
[Microsoft][ODBC SQL Server Driver]Falha no link de comunicação

Aqui está um aplicativo exemplo que consiste nos arquivos Global.asa e Authors.asp. Este aplicativo exemplo irá retornar quatro colunas e todos os registros na tabela pubs chamada authors.

Observação Você deve alterar o <nome de usuário> do UID e o pwd =<senha forte > para os valores corretos antes de executa este código. Verifique se o UID possui as permissões apropriadas para realizar esta operação no banco de dados.

Global.asa
   <SCRIPT LANGUAGE=VBScript RUNAT=Server>
   Sub Session_OnStart
   Session("ConnectionString") =
   "DSN=SQLSysDSN;UID=<username>;PWD=<strong password>;DATABASE=pubs;APP=ASP script"
      Session("ConnectionTimeout") = 15
      Session("CommandTimeout") = 30
   End Sub

   Sub Session_OnEnd

   End Sub
   </SCRIPT>				
Authors.asp
   <HTML>
   <HEAD>
   <TITLE>All Authors</TITLE>
   </HEAD>
   <BODY BGCOLOR="#FFFFFF">

   <% Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
   OBJdbConnection.ConnectionTimeout = Session("ConnectionTimeout")
   OBJdbConnection.CommandTimeout = Session("CommandTimeout")
   OBJdbConnection.Open Session("ConnectionString")
   Set SQLStmt = Server.CreateObject("ADODB.Command")
   Set RS = Server.CreateObject ("ADODB.Recordset")
   %>

   <p>
   <table border="0" bordercolor="#000000">
   <%
   SQLStmt.CommandText = "select * from authors"
   SQLStmt.CommandType = 1
   Set SQLStmt.ActiveConnection = OBJdbConnection
   RS.Open SQLStmt

   Do While Not RS.EOF
   %>
   <TR>
      <TD Width = 150 ALIGN=LEFT>
         <FONT SIZE=+1>
         <%= RS("au_id") %>
         </FONT></TD>
      <TD></TD>
         <TD Width = 150 ALIGN=LEFT>
         <FONT SIZE=+1>
         <%= RS("au_lname")  %>
         </FONT></TD>
      <TD Width = 150 ALIGN=LEFT>
         <FONT SIZE=+1>
         <%= RS("au_fname")  %>
         </FONT></TD>
      <TD Width = 150 ALIGN=LEFT>
         <FONT SIZE=+1>
         <%= RS("phone")  %>
         </FONT></TD>
   </TR>
   <%
   RS.MoveNext
   Loop
   %>
   </table>
   <hr>
   <p>
   </BODY>
   <% OBJdbConnection.Close
   Set OBJdbConnection = Nothing
   %>
   </HTML>				
Para obter mais informações sobre o ASP, consulte o Mapa fornecido pelo programa de instalação do ASP no servidor IIS.

Referências

Não encontrou uma resposta para sua pergunta? Visite os grupos de notícias do Microsoft SQL Server em (em inglês):
Grupos de Notícias do Microsoft SQL Server
Você tem comentários sobre este ou outros artigos da Base de Dados de Conhecimento Microsoft SQL Server? Contate-nos em Q169377.

Propriedades

ID do artigo: 169377 - Última revisão: sábado, 14 de maio de 2011 - Revisão: 11.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 4.21a Standard Edition
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Services 5.0
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Palavras-chave: 
kbsqlmanagementtools kbenv kbhowto kbinterop kbtshoot KB169377

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com