Manual de ASP

 
 
 

Mapa Web

 
borde   borde
Portada Capítulos Origen de Datos

 

Origen de Datos

Acceso al origen de datos

ActiveX Data Objects (ADO) es una tecnología ampliable y de fácil uso para agregar a sus páginas Web acceso a bases de datos. Puede utilizar ADO para escribir secuencias de comandos compactas y escalables que le permitan conectarse a orígenes de datos compatibles con OLE DB, como bases de datos , hojas de cálculo , archivos de datos secuenciales o directorios de correo electrónico . OLE DB es una interfaz de programación de nivel de sistema que proporciona un conjunto estándar de interfaces COM para que permitan exponer las funciones del sistema de administración de bases de datos. Con el modelo de objetos ADO es fácil tener acceso a estas interfaces (mediante lenguajes de secuencias de comandos, como VBScript o JScript) para agregar funciones de bases de datos a las aplicaciones Web. Además, también puede utilizar ADO para tener acceso a bases de datos compatibles con la Conectividad abierta de bases de datos (ODBC, Open Database Connectivity).

Si no tiene mucha experiencia en conectividad con bases de datos, encontrará que la sintaxis de ADO es sencilla y fácil de utilizar. Si es un programador experimentado, agradecerá el acceso escalable de alto rendimiento que proporciona ADO para una gran variedad de orígenes de datos.

Crear una cadena de conexión

El primer paso en la creación de una aplicación de datos en Web consiste en proporcionar un método para que ADO encuentre e identifique el origen de datos. Para ello se utiliza una cadena de conexión , una serie de argumentos separados mediante un punto y coma que definen parámetros como el proveedor del origen de datos y la ubicación del mismo. ADO utiliza la cadena de conexión para identificar el proveedor OLE DB y para dirigir al proveedor al origen de datos. El proveedor es un componente que representa el origen de datos y que expone la información en la aplicación en forma de conjuntos de filas.

En la tabla siguiente se enumeran las cadenas de conexión de OLE DB para varios orígenes de datos habituales:

Origen de datos

Cadena de conexión OLE DB

Microsoft(r) Access

Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ruta física de acceso al archivo .mdb

Microsoft SQL Server

Provider=SQLOLEDB.1;Data Source= ruta de acceso a la base de datos del servidor

Oracle

Provider=MSDAORA.1;Data Source= ruta de acceso a la base de datos del servidor

Microsoft Indexing Service

Provider=MSIDXS.1;Data Source= ruta de acceso al archivo

Para proporcionar compatibilidad con versiones anteriores, el proveedor OLE DB para ODBC admite la sintaxis de las cadenas de conexión ODBC. En la tabla siguiente se enumeran las cadenas de conexión ODBC que se utilizan habitualmente:

Controlador del origen de datos

Cadena de conexión ODBC

Microsoft Access

Driver={ Microsoft Access Driver (*.mdb)};DBQ= ruta física de acceso al archivo .mdb

SQL Server

DRIVER={ SQL Server };SERVER= ruta de acceso al servidor

Oracle

DRIVER={Microsoft ODBC for Oracle };SERVER= ruta de acceso al servidor

Microsoft Excel

Driver={ Microsoft Excel Driver (*.xls)};DBQ= ruta física de acceso al archivo .xls ; DriverID=278

Microsoft Excel 97

Driver={ Microsoft Excel Driver (*.xls)};DBQ= ruta física de acceso al archivo .xls ;DriverID=790

Paradox

Driver={Microsoft Paradox Driver (*.db)};DBQ= ruta física de acceso al archivo .db ;DriverID=26

Texto

Driver={Microsoft Text Driver (*.txt;*.csv)};DefaultDir= ruta física de acceso al archivo .txt

Microsoft Visual FoxPro (r) (con un contenedor de bases de datos)

Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDb= ruta física de acceso al archivo .dbc

Microsoft Visual FoxPro (sin un contenedor de bases de datos)

Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDb= ruta física de acceso al archivo .dbf

Conectarse al origen de datos

ADO proporciona el objeto Connection para establecer y administrar las conexiones entre las aplicaciones y los orígenes de datos compatibles con OLE DB o las bases de datos compatibles con ODBC. El objeto Connection incorpora propiedades y métodos que se pueden utilizar para abrir y cerrar conexiones con bases de datos, y para enviar consultas de actualización de la información.

Para establecer una conexión con una base de datos, cree primero una instancia del objeto Connection . Por ejemplo, la secuencia de comandos siguiente crea una instancia del objeto Connection y procede a abrir una conexión:

 <% 'Crea un objeto Connection. 
Set cn = Server.CreateObject("ADODB.Connection")
'Abre una conexión mediante la cadena de conexión OLE DB.
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data" & _
& Source=C:DatosMercadoVentasPrevistas.mdb"
%>

Nota: La cadena de conexión no contiene espacios en blanco ni antes ni después del signo igual (=).

En este caso, el método Open del objeto Connection se refiere a la cadena de conexión.

Ejecutar consultas SQL con el objeto Connection

Con el método Execute del objeto Connection puede emitir comandos al origen de datos, como consultas de SQL (Lenguaje de consulta estructurado). (SQL, lenguaje estándar para comunicarse con bases de datos, define comandos para recuperar y actualizar información.) El método Execute acepta parámetros que especifiquen el comando (o la consulta), el número de registros de datos a los que afecta y el tipo de comando que se utiliza.

La siguiente secuencia de comandos utiliza el método Execute para enviar una consulta con un comando INSERT de SQL, que inserta datos en una tabla concreta de la base de datos. En este caso, el bloque de la secuencia de comandos inserta el nombre José Lugo en una tabla de la base de datos llamada Customers .

 <% 'Define la cadena de conexión OLE DB. 
strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
& "Data Source=C:\Datos\Empleados.mdb"
'Crea la instancia del objeto Connection y abre una
'conexión con la base de datos.
Set cn = Server.CreateObject("ADODB.Connection")
cnn.Open strConnectionString
'Define la instrucción SELECT de SQL.
strSQL = "INSERT INTO Customers (FirstName, LastName) " & _
& "VALUES ('José','Lugo')"
'Utiliza el método Execute para enviar una consulta
'SQL a la base de datos.
cnn.Execute strSQL,,adCmdText + adExecuteNoRecords
%>

Observe que se especifican dos parámetros en la instrucción que se utiliza para ejecutar la consulta: adCmdText y adExecuteNoRecords . El parámetro opcional adCmdText especifica el tipo de comando e indica que el proveedor debe evaluar la instrucción de consulta (en este caso, una consulta SQL) como una definición textual de un comando. El parámetro adExecuteNoRecords indica a ADO que no debe crear un conjunto de registros de datos si no se devuelven resultados a la aplicación. Este parámetro sólo funciona con los tipos de comandos definidos como texto, como las consultas SQL, o con procedimientos almacenados de bases de datos. Aunque los parámetros adCmdText y adExecuteNoRecords son opcionales, debe especificarlos al utilizar el método Execute para mejorar así el rendimiento de la aplicación de datos.

Importante: Los parámetros ADO, como adCmdText , deben estar definidos para poder utilizarlos en una secuencia de comandos. Un método cómodo para definir los parámetros consiste en utilizar una biblioteca de tipos de componentes , que es un archivo que contiene definiciones para todos los parámetros ADO. Para implementar una biblioteca de tipos de componentes debe declararla antes. Agregue la etiqueta siguiente <METADATA> al archivo .asp o a Global.asa para declarar la biblioteca de tipos ADO:

<!--METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library" 
TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}"-->

Si desea obtener más detalles acerca de cómo implementar las bibliotecas de tipos de componentes, consulte la sección Utilizar constantes del tema Utilizar variables y constantes.

Además del comando INSERT de SQL, puede utilizar los comandos UPDATE y DELETE de SQL para modificar y quitar información de la base de datos.

Con el comando UPDATE de SQL puede modificar los valores de los elementos de una tabla de la base de datos. La siguiente secuencia de comandos usa el comando UPDATE para cambiar todos los campos FirstName de la tabla Customers a Juan en todas las filas cuyo campo LastName contenga el apellido Soto.

 <% Set cn = Server.CreateObject("ADODB.Connection")
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _
& "Source=C:DatosEmpleados.mdb"
cn.Execute "UPDATE Customers SET FirstName = 'Juan' WHERE " & _
& "LastName = 'Soto' ",,adCmdText + adExecuteNoRecords %>

Para quitar determinados registros de una tabla de la base de datos, utilice el comando DELETE de SQL. La siguiente secuencia de comandos quita todas las filas de la tabla Customers cuyo apellido sea Soto:

 <% Set cn = Server.CreateObject("ADODB.Connection")
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _
& "Source=C:DatosEmpleados.mdb"
cn.Execute "DELETE FROM Customers WHERE LastName = 'Soto'", _
,adCmdText + adExecuteNoRecords %>

Nota: Debe tener mucho cuidado al utilizar el comando DELETE de SQL. Un comando DELETE que no vaya acompañado de una cláusula WHERE eliminará todas las filas de la tabla. Asegúrese de incluir la cláusula WHERE de SQL, que especifica las filas exactas que se van a eliminar.

Capítulo anterior:
Validar los datos de los formularios

Capítulo siguiente:
Utilizar el objeto recordset para manipular resultados

 

 
Portada
Capítulos del Manual de ASP
Crear una Página ASP
Agregar secuencias de comandos del servidor
Combinar HTML y comandos de secuencias de comandos
Utilizar directivas ASP
Espacio en Blanco en las secuencias de comandos
Introducción a las variables
Alcance de las variables
Alcance de sesión y Alcance de aplicación
Utilizar Constantes
Interactuar con secuencias de comandos del cliente
Escribir y Definir Procedimientos
Llamar a Procedimientos
Procesar los datos proporcionados por el usuario
La colección QueryString y la colección Form
Validar los datos de los formularios
Origen de Datos
Utilizar el objeto recordset para manipular resultados
Combinar formularios y el acceso a la base de datos
Transferencia entre archivos ASP
Practicar en línea
Lista de prácticas en línea
FAQ
Preguntas frecuentes
Códigos ASP
Lista de Códigos ASP
Foros
Foros ASP
Otros Manuales
Manuales de otros lenguajes
 
   
 
 
Alojamiento web en Hostalia