Cómo obtener acceso a SQL Server en páginas Active Server

Seleccione idioma Seleccione idioma
Id. de artículo: 169377 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E169377
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describe cómo establecer conexiones con SQL Server en una secuencia de comandos ASP utilizando ActiveX Data Objects (ADO) aprovechándose de la característica de agrupación de conexiones de ODBC 3.0.



Más información

Agrupación de conexiones

Habilite la agrupación de conexiones ODBC.
Para obtener información adicional sobre la agrupación de conexiones e instrucciones para habilitar esta característica, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
164221 Cómo habilitar la agrupación de conexiones en una aplicación ODBC

ODBC DSN

Utilizando el Administrador de ODBC, cree un nombre de origen de datos (DSN) de sistema en el equipo donde esté instalado Microsoft Internet Information Server (IIS). Especifique el atributo de conexión una vez y, a continuación, reutilícelo en cada página. Por ejemplo, en el suceso Session_OnStart en archivo Global.asa, defina el atributo de conexión como:
 Session("ConnectionString") = "dsn=SQLSysDSN;uid=<nombreDeUsuario>;pwd=<contraseña segura>;DATABASE=pubs;APP=ASP Script"				
Asegúrese de que se cumplen todas las condiciones siguientes:
  • El cuadro Trusted Connection no está seleccionado en la definición de DSN de sistema.
  • El modo de seguridad de SQL Server no es Integrada de Windows NT.
  • En el atributo de conexión, el uid no está en blanco.
De otro modo, se podría producir un error en una conexión a SQL Server y recibiría el mensaje de error siguiente:

Error '80004005' de Proveedor OLE DB de Microsoft para controladores ODBC
[Microsoft][Controlador ODBC de SQL Server][SQL Server] Error de inicio de sesión- Usuario: _
Razón: No definido como usuario válido de una conexión de SQL Server de confianza.

Global.asa

El uso del archivo Global.asa es opcional. En su lugar, las entradas que suele tener este archivo se pueden colocar en la primera página que llame la aplicación. Suponiendo que las secuencias de comandos ASP se encuentran en una carpeta que no esté definida como directorio virtual en el Administrador de servicios Internet, pero que esté debajo de otro directorio virtual, el archivo Global.asa que contiene las variables de sesión y las definiciones de DSN se deben conservar en el directorio virtual. De lo contrario, aparecerá un mensaje de error similar al siguiente:

Error '80004005' de Proveedor OLE DB de Microsoft para controladores ODBC
[Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos
y no se especificó un controlador predeterminado

Conexiones en la secuencia de comandos ASP

Saque provecho de la agrupación de conexiones abriendo y cerrando la conexión con la base de datos en cada página Active Server. Para abrir la conexión, escriba las instrucciones siguientes en la sección <Body> de la página:
   <%
   Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
   OBJdbConnection.Open Session("ConnectionString")   %>				
Para cerrar la conexión, ponga lo siguiente inmediatamente después de la etiqueta </Body>:
   <%
   OBJdbConnection.Close
   Set OBJdbConnection = Nothing
   %>				
Puede recibir los dos mensajes de error siguientes si la configuración de la conexión no está definida correctamente según se ha descrito anteriormente en este artículo:

Error '80004005' de Proveedor OLE DB de Microsoft para controladores ODBC
[Microsoft][Controlador ODBC de SQL Server][DBNMPNTW]Conexión interrumpida.
O bien

Error '80004005' de Proveedor OLE DB de Microsoft para controladores ODBC
[Microsoft][Controlador ODBC de SQL Server]Error en el vínculo de comunicación

Ésta es una aplicación de ejemplo que está compuesta de los archivos Global.asa y Authors.asp. Esta aplicación de ejemplo devolverá cuatro columnas y todos los registros de la tabla de pubs denominada authors.

Nota
Debe cambiar el UID <nombreDeUsuario> y pwd =<contraseña segura> por los valores correctos antes de ejecutar este código. Asegúrese de que el UID tiene los permisos apropiados para realizar esta operación en la base de datos.

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 obtener más información sobre las páginas Active Server, vea la guía básica que proporciona el programa de instalación de ASP en el servidor de IIS.

Referencias

¿No encuentra una respuesta a su pregunta? Visite los grupos de noticias de Microsoft SQL Server en:
Microsoft SQL Server Newsgroups
¿Tiene algún comentario que hacer acerca de éste o de otros artículos de Knowledge Base relativos a Microsoft SQL Server? Envíe una nota a Q169377.

Propiedades

Id. de artículo: 169377 - Última revisión: lunes, 20 de noviembre de 2006 - Versión: 10.1
La información de este artículo se refiere 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 4.0
  • Servicios de Microsoft Internet Information Server 3.0
  • Servicios de Microsoft Internet Information Server 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
Palabras clave: 
kbenv kbhowto kbinterop kbtshoot KB169377

Enviar comentarios

 

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