Serie de conferencias ASP (16) Acceso a la base de datos
Autor:Eve Cole
Fecha de actualización:2009-05-30 19:58:46
ActiveX Data Objects (ADO) es una tecnología extensible y fácil de usar para agregar acceso a bases de datos a páginas web. Puede utilizar ADO para escribir scripts compactos y concisos para conectarse a bases de datos compatibles con Open Database Connectivity (ODBC) y fuentes de datos compatibles con OLE DB. Si es un programador de secuencias de comandos con algún conocimiento de conexiones de bases de datos, encontrará que las declaraciones de comandos ADO no son complicadas y fáciles de dominar. Del mismo modo, si es un programador de bases de datos experimentado, apreciará las capacidades avanzadas de procesamiento de consultas y de independencia del lenguaje de ADO.
Creación del archivo ODBC DSN Antes de crear el script de la base de datos, debe proporcionar una forma para que ADO localice, identifique y se comunique con la base de datos. El controlador de la base de datos utiliza un nombre de origen de datos (DSN) para localizar e identificar una base de datos específica compatible con ODBC para pasar información desde la aplicación web a la base de datos. Normalmente, un DSN contiene información sobre la configuración de la base de datos, la seguridad del usuario y la ubicación, y se puede obtener como una tabla en una clave de registro de Windows NT o como un archivo de texto.
Con ODBC, puedes elegir el tipo de DSN que deseas crear: usuario, sistema o archivo. Los DSN de usuario y sistema se almacenan en el registro de Windows NT. El DSN del sistema permite que todos los usuarios que hayan iniciado sesión en un servidor específico accedan a la base de datos, mientras que el DSN del usuario restringe las conexiones de la base de datos a usuarios específicos que utilizan las credenciales de seguridad adecuadas. El archivo DSN se utiliza para obtener tablas de archivos de texto, proporciona acceso a múltiples usuarios y se puede transferir fácilmente de un servidor a otro copiando el archivo DSN. Por estos motivos, los ejemplos de este tema utilizan archivos DSN.
Puede crear archivos basados en DSN abriendo el Panel de control desde el menú Inicio de Windows. Haga doble clic en el icono ODBC, seleccione la página de propiedades Archivo DSN, haga clic en Agregar, seleccione el controlador de la base de datos y haga clic en Siguiente. Siga las instrucciones a continuación para configurar el DSN para su software de base de datos.
Configuración del archivo DSN para la base de datos de Microsoft Access
En el cuadro de diálogo Crear nueva fuente de datos, seleccione Microsoft Access Driver en el cuadro de lista y luego haga clic en Siguiente.
Escriba el nombre de su archivo DSN y haga clic en Siguiente.
Haga clic en Finalizar para crear la fuente de datos.
En el cuadro de diálogo Configuración de ODBC Microsoft Access 97, haga clic en Seleccionar. Seleccione el archivo de base de datos de Microsoft Access (*.mdb) y haga clic en Aceptar.
NOTA Por motivos de rendimiento y confiabilidad, le recomendamos encarecidamente que utilice un motor de base de datos cliente-servidor para configurar datos controlados por aplicaciones web a las que deben poder acceder más de 10 usuarios simultáneamente. Aunque ASP puede utilizar cualquier base de datos compatible con ODBC, está diseñado y probado rigurosamente para su uso con bases de datos cliente-servidor, incluidas Microsoft SQL Server, Oracle y otras.
ASP admite bases de datos de archivos compartidos (como Microsoft Access o FoxPro) como fuentes de datos válidas. Aunque algunos ejemplos en la documentación de ASP utilizan bases de datos de archivos compartidos, recomendamos utilizar dichos motores de bases de datos solo para escenarios de desarrollo o implementación limitada. Es posible que las bases de datos de archivos compartidos no sean una buena opción para las bases de datos cliente-servidor que atienden aplicaciones web de alta demanda y alta calidad.
Configurar el archivo de base de datos de SQL Server DSN
Nota Si la base de datos reside en un servidor remoto, comuníquese con el administrador del servidor para obtener información de configuración adicional; el siguiente procedimiento utiliza la configuración predeterminada de ODBC de SQL Server, que puede no aplicarse a su configuración de hardware.
En el cuadro de diálogo Crear nueva fuente de datos, seleccione SQL Server en el cuadro de lista y luego haga clic en Siguiente.
Escriba un nombre para el archivo DSN y haga clic en Siguiente.
Haga clic en Finalizar para crear la fuente de datos.
Escriba el nombre, ID de inicio de sesión y contraseña del servidor que ejecuta el programa de servicio SQL.
En el cuadro de diálogo Crear nueva fuente de datos para SQL Server, escriba el nombre del servidor que contiene la base de datos de SQL Server en el cuadro de lista Servidor y luego haga clic en Siguiente.
Seleccione cómo verificar su ID de inicio de sesión.
Si elige la autenticación del servidor SQL, ingrese un ID de inicio de sesión y una contraseña, y haga clic en Siguiente.
En el cuadro de diálogo Crear nueva fuente de datos para SQL Server, configure la base de datos predeterminada, el controlador para la configuración del procedimiento almacenado y la identificación ANSI y luego haga clic en Siguiente. (Para obtener más información, haga clic en Ayuda).
En el cuadro de diálogo (también llamado Crear una nueva fuente de datos para SQL Server), seleccione un método de conversión de caracteres y luego haga clic en Siguiente. (Para obtener más información, haga clic en Ayuda).
En el siguiente cuadro de diálogo (también llamado "Crear una nueva fuente de datos para SQL Server"), seleccione la configuración de inicio de sesión.
Nota Normalmente, sólo puede utilizar registros para depurar problemas de acceso a la base de datos.
En el cuadro de diálogo Configuración de ODBC Microsoft SQL Server, haga clic en Probar origen de datos. Si el DSN se creó correctamente, el cuadro de diálogo Resultados de la prueba indicará que la prueba se completó correctamente.
Conexión del servidor SQL e información de seguridad Si está desarrollando una aplicación de base de datos ASP que se conecta a una base de datos remota de SQL Server, debe considerar las siguientes cuestiones:
Opciones de conexión: puede elegir entre sockets TCP/IP y canalizaciones con nombre para acceder a la base de datos remota de SQL Server. Cuando se utilizan canalizaciones con nombre, debido a que el usuario de la base de datos debe autenticarse en Windows NT antes de que se pueda establecer una conexión, a los usuarios con identidades de acceso de SQL Server apropiadas pero sin una cuenta de usuario de Windows NT en la computadora se les puede negar el acceso a la canalización con nombre. Como alternativa, se puede conectar una conexión que utiliza sockets TCP/IP directamente al servidor de la base de datos sin pasar por una computadora intermediaria que utilice canalizaciones con nombre. Como puede conectarse directamente al servidor de la base de datos mediante una conexión de socket TCP/IP, los usuarios pueden obtener acceso mediante la autenticación de SQL Server sin tener que autenticarse mediante Windows NT.
Nota El uso de sockets TCP/IP puede mejorar el rendimiento al conectarse a bases de datos remotas.
Seguridad: si está utilizando las funciones de seguridad integradas o mixtas de SQL Server y la base de datos de SQL Server está en un servidor remoto, no puede utilizar el reconocimiento de solicitud/respuesta de Windows NT. Es decir, el ID de solicitud/respuesta de Windows NT no se puede reenviar a la computadora remota, sino que sólo se puede utilizar la autenticación básica, que se basa en la información de nombre de usuario y contraseña del usuario.
Para obtener más información sobre este tema, consulte http://www.microsoft.com/sqlsupport/
Página de inicio de soporte técnico de Microsoft SQL Server.
Configurar el archivo de base de datos Oracle DSN
Primero asegúrese de que el software de usuario de Oracle esté instalado correctamente en la computadora en la que se creará el DSN. Para obtener más información, comuníquese con el administrador de su servidor o consulte la documentación del software de su base de datos.
En el cuadro de diálogo Crear nueva fuente de datos, seleccione Microsoft ODBC para Oracle en el cuadro de lista y luego haga clic en Siguiente.
Escriba un nombre para el archivo DSN y haga clic en Siguiente.
Haga clic en Finalizar para crear la fuente de datos.
Ingrese su nombre de usuario, contraseña y nombre del servidor y haga clic en Aceptar.
Nota Los archivos DSN tienen una extensión .dsn y se encuentran en el directorio ProgramasCommon FilesODBCData Sources.
Para obtener más información sobre la creación de archivos DSN, visite el sitio web de Microsoft ODBC: http://microsoft.com/odbc/.
Conexión a la base de datos El primer paso para acceder a la información de la base de datos es establecer una conexión con la fuente de la base de datos. ADO proporciona un objeto Conexión que se puede utilizar para establecer y administrar conexiones entre aplicaciones y bases de datos ODBC. El objeto Connection tiene varias propiedades y métodos que puede utilizar para abrir y cerrar conexiones de bases de datos y realizar solicitudes de consulta para actualizar información.
Para establecer una conexión de base de datos, primero crea una instancia del objeto Conexión. Por ejemplo, el siguiente script crea un objeto Conexión y luego abre una conexión de base de datos:
<%
'Crear un objeto de conexión
Establecer cn = Server.CreateObject("ADODB.Connection")
'Abrir una conexión; la cadena hace referencia al DSN
cn.Abrir "FILEDSN=MiBaseDeDatos.dsn"
%>
Nota La cadena DSN no puede contener espacios, ni antes ni después del signo igual (=).
En este caso, el método Open del objeto Connection hace referencia a un archivo basado en DSN que contiene información de ubicación y configuración sobre la base de datos. También puede hacer referencia explícita al proveedor, la fuente de datos, el ID de usuario y la contraseña sin hacer referencia al DSN.
Ejecutar una consulta con un objeto de conexión Utilizando el método Ejecutar del objeto de conexión, puede emitir una consulta en lenguaje de consulta estructurado (SQL) a una fuente de base de datos y recuperar los resultados. SQL es el lenguaje estándar de la industria para comunicarse con bases de datos y tiene muchos comandos para recuperar y actualizar información.
El siguiente script utiliza el método Execute del objeto Connection para emitir una consulta en una tabla usando un comando SQL INSERT, que inserta datos en una tabla de base de datos específica. En el siguiente ejemplo, el script inserta el nombre José Lugo en una tabla de base de datos denominada Clientes.
<%
'Definir DSN basado en archivos
strDSN = "FILEDSN=MiBaseDeDatos.dsn"
'Crea una instancia del objeto Conexión y abre una conexión a la base de datos
Establecer cn = Server.CreateObject("ADODB.Connection")
cn.Abrir strDSN
'Definir sentencia SELECT de SQL
strSQL = "INSERTAR EN Clientes (Nombre, Apellido) VALORES ('José','Lugo')"
'Utilice el método Execute para emitir una consulta SQL a la base de datos
cn.Ejecutar(strSQL)
%>
Tenga en cuenta que los archivos basados en cadenas de ruta DSN no deben contener espacios antes y después del signo igual (=).
Además del comando SQL INSERT, también puede utilizar los comandos SQL UPDATE y DELETE para cambiar y eliminar información de la base de datos.
Con el comando SQL ACTUALIZAR, puede cambiar el valor de cada elemento en la tabla de la base de datos. El siguiente script utiliza el comando ACTUALIZAR para cambiar el campo Nombre de cada registro en la tabla Clientes cuyo campo Apellido contiene el apellido Smith a Jeff.
<%
Establecer cn = Server.CreateObject("ADODB.Connection")
cn.Abrir "FILEDSN=MiBaseDeDatos.dsn"
cn.Execute "ACTUALIZAR Clientes SET Nombre = 'Jeff' WHERE Apellido = 'Smith' "
%>
Para eliminar registros específicos de una tabla de base de datos, utilice el comando SQL DELETE. El siguiente script elimina todas las filas con el apellido Smith de la tabla Clientes:
<%
Establecer cn = Server.CreateObject("ADODB.Connection")
cn.Abrir "FILEDSN=MiBaseDeDatos.dsn"
cn.Execute "ELIMINAR DE Clientes DONDE Apellido = 'Smith'"
%>
Nota Debe tener cuidado al utilizar el comando DELETE de SQL. Cuando utiliza el comando DELETE sin una cláusula WHERE, elimina todas las filas de la tabla. Asegúrese de incluir la cláusula WHERE de SQL para especificar las filas exactas que desea eliminar.
Uso de objetos Recordset para procesar resultados Aunque el objeto Connection simplifica la tarea de conectarse a una base de datos y realizar consultas, el objeto Connection todavía tiene muchas deficiencias. Específicamente, el objeto Connection que recupera y muestra información de la base de datos no se puede usar para crear scripts; debe saber exactamente qué cambios desea realizar en la base de datos antes de poder usar consultas para implementar los cambios.
Para recuperar datos, comprobar resultados y cambiar la base de datos, ADO proporciona objetos Recordset. Como su nombre lo indica, el objeto Recordset tiene una serie de características que puede utilizar para recuperar y mostrar un conjunto de filas de base de datos, o "registros", según las restricciones de su consulta. Un objeto Recordset contiene la ubicación de los registros devueltos por una consulta, lo que le permite recorrer los resultados uno por uno.
Dependiendo de la configuración de la propiedad PointerType del objeto Recordset, puede desplazarse y actualizar registros. Los punteros de la base de datos le permiten localizar un elemento específico dentro de un conjunto de registros. Los punteros también se utilizan para recuperar y examinar registros y luego realizar operaciones basadas en esos registros. Los objetos Recordset tienen propiedades que le permiten controlar con precisión el comportamiento de los punteros, mejorando su capacidad para inspeccionar y actualizar resultados. Por ejemplo, puede utilizar las propiedades CursorType y CursorLocation para establecer el tipo de un puntero, devolver los resultados a la aplicación cliente (los resultados normalmente se conservan en el servidor de la base de datos) y mostrar los últimos cambios realizados en la base de datos por otros usuarios. .
Recuperación de registros Una aplicación de base de datos exitosa utiliza el objeto Connection para establecer el vínculo y el objeto Recordset para procesar los datos devueltos. Al "coordinar" la funcionalidad específica de dos objetos, se puede desarrollar una aplicación de base de datos que pueda realizar casi cualquier tarea de procesamiento de datos. Por ejemplo, el siguiente script del lado del servidor utiliza un objeto Recordset para ejecutar un comando SQL SELECT. El comando SELECT recupera un conjunto de información según las restricciones de la consulta. La consulta también contiene una cláusula WHERE de SQL, que se utiliza para limitar el alcance de la consulta. En este ejemplo, la cláusula WHERE limita la consulta a todos los registros que contengan el apellido Smith en la tabla de la base de datos Clientes.
<%
'Establecer una conexión con la fuente de datos
strDSN = "FILEDSN=MiBaseDeDatos.dsn"
Establecer cn = Server.CreateObject("ADODB.Connection")
cn.Abrir strDSN
'Crear una instancia de un objeto Recordset
Establecer rsCustomers = Server.CreateObject("ADODB.Recordset")
'Abrir un conjunto de registros usando el método Open
' y utilizar la conexión establecida por el objeto Conexión
strSQL = "SELECCIONE Nombre, Apellido DE Clientes DONDE Apellido = 'Smith' "
rsClientes.Abrir strSQL, cn
'Recorre el conjunto de registros y muestra los resultados
' e incrementar la posición del registro con el método MoveNext
Establecer objFirstName = rsCustomers("FirstName")
Establecer objLastName = rsCustomers ("Apellido")
Hacer hasta rsCustomers.EOF
Respuesta.Escribir objFirstName & " " & objLastName & "<BR>"
rsClientes.MoveNext
Bucle
%>
Tenga en cuenta que en el ejemplo anterior, el objeto Connection se usó para establecer la conexión de la base de datos y el objeto Recordset usó la conexión para recuperar resultados de la base de datos. Este método es útil cuando necesita configurar exactamente cómo establecer un enlace a la base de datos. Por ejemplo, si necesita especificar cuánto tiempo esperar antes de que falle un intento de conexión, debe usar el objeto Conexión para establecer las propiedades. Sin embargo, si solo desea establecer una conexión utilizando las propiedades de conexión predeterminadas de ADO, debe usar el método Open del objeto Recordset para establecer el vínculo:
<%
strDSN = "FILEDSN=MiBaseDeDatos.dsn"
strSQL = "SELECCIONE Nombre, Apellido DE Clientes DONDE Apellido = 'Smith' "
Establecer rsCustomers = Server.CreateObject("ADODB.Recordset")
'Abrir una conexión usando el método Open
'y utilizar la conexión establecida por el objeto Conexión
rsClientes.Abrir strSQL, strDSN
'Recorre el conjunto de registros, muestra los resultados,
' e incrementar la posición del registro con el método MoveNext
Establecer objFirstName = rsCustomers("FirstName")
Establecer objLastName = rsCustomers ("Apellido")
Hacer hasta rsCustomers.EOF
Respuesta.Escribir objFirstName & " " & objLastName & "<BR>"
rsClientes.MoveNext
Bucle
%>
Cuando se utiliza el método Open del objeto Recordset para establecer una conexión, se debe utilizar el objeto Connection para garantizar la seguridad de la conexión.
Uso del objeto Command para mejorar las consultas Con el objeto Command de ADO, puede ejecutar consultas tal como lo haría con los objetos Connection y Recordset. La única diferencia es que con el objeto Command puede preparar, compilar e iterar su consulta en la base de datos. fuente utilizando un conjunto diferente de valores. Emitir una consulta. La ventaja de compilar consultas de esta manera es que puede minimizar el tiempo necesario para emitir repetidamente solicitudes modificadas a consultas existentes. Alternativamente, puede dejar una consulta SQL parcialmente sin definir antes de su ejecución mediante opciones en la parte variable de su consulta.
La colección de parámetros del objeto Command le ahorra la molestia de reconstruir la consulta cada vez que se vuelve a emitir. Por ejemplo, si necesita actualizar periódicamente la información de suministro y precios en un sistema web basado en inventario, puede predefinir la consulta de la siguiente manera:
<%
'Abrir una conexión utilizando el objeto Conexión objeto Comando
'no tiene un método abierto para establecer una conexión
strDSN = "FILEDSN=MiBaseDeDatos.dsn"
Establecer cn = Server.CreateObject("ADODB.Connection")
cn.Abrir strDSN
'Crear una instancia del objeto Command; use la propiedad ActiveConnection para adjuntar
'conexión al objeto Comando
Establecer cm= Server.CreateObject("ADODB.Command")
Establecer cm.ActiveConnection = cn
'Definir consulta SQL
cm.CommandText = "INSERTAR EN INVENTARIO (Material, Cantidad) VALORES (?, ?)"
'Guarda una versión preparada (o precompilada) de la consulta especificada en CommandText
'propiedad antes de la primera ejecución de un objeto Command.
cm.Preparado = Verdadero
'Definir información de configuración del parámetro de consulta
cm.Parameters.Append cm.CreateParameter("tipo_material",200, 255)
cm.Parameters.Append cm.CreateParameter("cantidad",200, 255)
'Definir y ejecutar la primera inserción
cm("tipo_material") = "bombillas"
cm("cantidad") = "40"
cm.Ejecutar
'Definir y ejecutar segunda inserción
cm("tipo_material") = "fusibles"
cm("cantidad") = "600"
cm.Ejecutar
%>
Consulte el ejemplo anterior y notará que el script genera y emite repetidamente una consulta SQL con diferentes valores sin redefinir ni reenviar la consulta a la fuente de la base de datos. La compilación de consultas con objetos Command también evita problemas con la combinación de variables de cadena y tabla causados por consultas SQL. En particular, los problemas asociados con la definición de los tipos de variables de cadena, fecha y hora se pueden evitar utilizando la colección Parameter del objeto Command. Por ejemplo, un valor de consulta SQL que contenga "'" puede provocar que la consulta falle:
strSQL = "INSERTAR EN Clientes (Nombre, Apellido) VALORES ('Robert','O'Hara')"
Tenga en cuenta que el apellido O'Hara contiene un "'", que entra en conflicto con el "'" utilizado para representar datos en la palabra clave SQL VALUES. Este tipo de problema se puede evitar vinculando el valor de la consulta como un parámetro del objeto Comando.
Combinación de tablas HTML y bases de datos Acceder a una página web que contiene una tabla HTML permite a los usuarios consultar de forma remota una base de datos y recuperar información específica. Con ADO puede crear scripts muy simples para recopilar información de tablas de usuarios, crear consultas de bases de datos personalizadas y devolver información al usuario. Utilizando el objeto Solicitud ASP, puede recuperar información ingresada en una tabla HTML e incorporar esta información en una declaración SQL. Por ejemplo, el siguiente módulo de secuencia de comandos inserta información proporcionada por una tabla HTML en una tabla. Este script utiliza la colección Form de objetos Request para recopilar información del usuario.
<%
'Abra una conexión usando el objeto Conexión. El objeto Comando.
'no tiene un método abierto para establecer una conexión
strDSN = "FILEDSN=MiBaseDeDatos.dsn"
Establecer cn = Server.CreateObject("ADODB.Connection")
cn.Abrir strDSN
'Crear una instancia del objeto Comando
'y usar la propiedad ActiveConnection para adjuntar
'conexión al objeto Comando
Establecer cm= Server.CreateObject("ADODB.Command")
Establecer cm.ActiveConnection = cn
'Definir consulta SQL
cm.CommandText = "INSERTAR EN MySeedsTable (Tipo) VALORES (?)"
'Definir información de configuración del parámetro de consulta
cm.Parameters.Append cm.CreateParameter("tipo",200, 255)
'Definir y ejecutar insertar
cm("tipo") = Solicitud("Tipo de semilla")
cm.Ejecutar
%>
Gestión de conexiones de bases de datos El mayor desafío al diseñar una aplicación de base de datos web sólida, como una aplicación de compras en línea que atienda a miles de clientes, es gestionar adecuadamente las conexiones de bases de datos. Abrir y mantener una conexión de base de datos, incluso cuando no se transfiere información, puede consumir considerablemente los recursos del servidor de la base de datos y causar problemas de conectividad. Una aplicación de base de datos web bien diseñada reciclará las conexiones de la base de datos y podrá compensar los retrasos causados por la congestión de la red.
Causar tiempos de espera de conexión Un aumento repentino en la actividad puede hacer que el servidor de la base de datos sea muy difícil de manejar, aumentando significativamente el tiempo que lleva establecer una conexión a la base de datos. Como resultado, una latencia de conexión excesiva degradará el rendimiento de la base de datos.
Usando ConnectionTimeout del objeto Connection, puede limitar el tiempo que espera una aplicación antes de abandonar el intento de conexión y emitir un mensaje de error. Por ejemplo, el siguiente script establece la propiedad ConnectionTimeout para que espere 20 segundos antes de cancelar un intento de conexión:
Establecer cn = Server.CreateObject("ADODB.Connection")
cn.ConnectionTimeout = 20
cn.Abrir "FILEDSN=MiBaseDeDatos.dsn"
La propiedad ConnectionTimeout predeterminada es 30 segundos.
Nota Antes de incorporar la propiedad ConnectionTimeout en una aplicación de base de datos, asegúrese de que el proveedor de conexión y la fuente de datos admitan la propiedad.
Conexiones compartidas Las aplicaciones de bases de datos web que frecuentemente establecen y interrumpen conexiones de bases de datos pueden degradar el rendimiento del servidor de bases de datos. ASP admite la gestión eficiente de conexiones utilizando las funciones de uso compartido de ODBC 3.5. La conexión compartida mantiene abiertas las conexiones de la base de datos y gestiona el uso compartido de esa conexión entre diferentes usuarios para mantener su rendimiento y reducir la cantidad de conexiones inactivas. Para cada solicitud de conexión, el grupo de conexiones primero determina si hay una conexión inactiva en el grupo. Si está presente, el grupo de conexiones devuelve la conexión en lugar de establecer una nueva conexión a la base de datos.
Si desea que su controlador ODBC participe en la conexión compartida, debe configurar el controlador de la base de datos y establecer la propiedad CPTimeout del controlador en el registro de Windows NT. Cuando ODBC se desconecta, la conexión se agrupa en lugar de desconectarse. La propiedad CPTimeout determina cuánto tiempo se retiene una conexión en el grupo de conexiones. Si una conexión permanece en el grupo por más tiempo que la configuración de CPTimeout, la conexión se cerrará y se eliminará del grupo. El valor predeterminado para CPTimeout es 60 segundos.
Puede habilitar la agrupación de conexiones para un controlador de base de datos ODBC específico configurando selectivamente la propiedad CPTimeout creando una clave de registro configurada de la siguiente manera:
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INInombre-controladorCPTimeout = tiempo de espera
(REG_SZ, las unidades están en segundos)
Por ejemplo, la siguiente clave establece el tiempo de espera del grupo de conexiones del controlador SQL Server en 180 segundos (3 minutos).
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INISQL ServerCPTimeout = 180
Nota De forma predeterminada, el servidor web activa el grupo de conexiones de SQL Server configurando CPTimeout en 60 segundos.
Uso de conexiones entre páginas Aunque puede reutilizar conexiones entre páginas almacenándolas en el objeto Aplicación de ASP, mantener la conexión abierta en todo momento es innecesario y no aprovecha al máximo las ventajas de la agrupación de conexiones. Si muchos usuarios necesitan conectarse a la misma aplicación de base de datos ASP, un buen método es reutilizar la conexión de la base de datos colocando la cadena de conexión entre páginas en el objeto Aplicación ASP. Por ejemplo, puede especificar la cadena de conexión en el procedimiento del evento Application_OnStart del archivo Global.asa, como se muestra en el siguiente script:
Bloqueo de aplicación
Aplicación("ConnectionString") = "FILEDSN=MiBaseDeDatos.dsn"
Aplicación.desbloquear
Luego, en cada archivo ASP que acceda a la base de datos, escriba:
<OBJECT RUNAT=ID del servidor=cn PROGID="ADODB.Connection"> </OBJECT>
Para crear una instancia del objeto de conexión, utilice el siguiente script:
cn.Abrir aplicación ("Cadena de conexión")
Para conexiones abiertas, puede escribir el siguiente script al final de la página para cerrar la conexión:
cn.Cerrar
En situaciones en las que un único usuario necesita reutilizar una conexión entre páginas, es mejor utilizar la conexión del objeto Sesión en lugar del objeto Aplicación.
Cierre la conexión Si desea hacer un mejor uso del grupo de conexiones, debe cerrar la conexión de la base de datos lo antes posible. De forma predeterminada, la conexión finalizará una vez que el script haya terminado de ejecutarse. Cerrar una conexión cuando ya no es necesaria reduce las demandas en el servidor de la base de datos y hace que la conexión esté disponible para otros usuarios.
Puede utilizar el método Close del objeto Connection para finalizar la conexión entre el objeto Connection y la base de datos. El siguiente script abre la conexión y luego la cierra:
<% strDSN = "FILEDSN=MiBaseDeDatos.dsn"
Establecer cn = Server.CreateObject("ADODB.Connection")
cn.abierto
cn.Cerrar
%>