Objetos de datos ActiveX
En informática, los Objetos de datos ActiveX (ADO) de Microsoft comprenden un conjunto de objetos del Modelo de objetos componentes (COM) para acceder a las fuentes de datos. Como parte de MDAC (Microsoft Data Access Components), proporciona una capa de middleware entre los lenguajes de programación y OLE DB (un medio para acceder a los almacenes de datos, ya sean bases de datos o no, de manera uniforme). ADO permite que un desarrollador escriba programas que accedan a datos sin saber cómo se implementa la base de datos; los desarrolladores deben conocer la base de datos solo para la conexión. No se requiere conocimiento de SQL para acceder a una base de datos cuando se usa ADO, aunque se puede usar ADO para ejecutar comandos SQL directamente (con la desventaja de introducir una dependencia sobre el tipo de base de datos utilizada).
Microsoft presentó ADO en octubre de 1996, posicionando el software como un sucesor de las capas de objetos anteriores de Microsoft para acceder a fuentes de datos, incluidos RDO (Objetos de datos remotos) y DAO (Objetos de acceso a datos).
ADO se compone de cuatro colecciones y doce objetos.
Colecciones ADO
- Campos
- Esta colección contiene un conjunto de objetos de campo. La colección se puede utilizar en un objeto Recordset o en un objeto Record. En un objeto Recordset, cada uno de los objetos de Campo que componen la colección Fields corresponde a una columna en ese objeto de conjunto Record. En un objeto Record, un Campo puede ser una URL absoluta o relativa que apunta a un espacio de nombres estructurado por árboles (utilizado para proveedores de datos semiestructurados como el Proveedor de Microsoft OLE DB para la publicación de Internet) o como referencia al objeto Stream predeterminado asociado con ese objeto Record.
- Propiedades
- Un objeto puede tener más de un objeto de propiedad, que están contenidos en la colección Propiedades del objeto.
- Parámetros
- Un objeto de comando puede tener varios comandos de parámetro para cambiar su comportamiento predefinido, y cada uno de los objetos del parámetro están contenidos en la colección de parámetros del objeto de comando
- Errores
- Todos los errores creados por el proveedor se transmiten a una colección de objetos de error, mientras que la colección de errores en sí está contenida en un objeto de conexión. Cuando una operación ADO crea un error, la colección se limpia y se crea un nuevo grupo de objetos Error en la colección.
Objetos ADO
- Conexión
- El objeto de conexión es la conexión de ADO a una tienda de datos vía OLE DB. El objeto de conexión almacena información sobre la sesión y ofrece métodos de conexión a la tienda de datos. Como algunas tiendas de datos tienen diferentes métodos para establecer una conexión, algunos métodos pueden no ser apoyados en el objeto de conexión para un proveedor OLE DB particular. Un objeto de conexión se conecta a la tienda de datos usando su método 'Open' con una cadena de conexión que especifica la conexión como una lista de pares de valor clave (por ejemplo: "Provider='SQLOLEDB';Data Source='TheSqlServer'; First Catalog='Northwind';Integrated Security='SSPI');"). El inicio de esta cadena de conexión debe identificar el tipo de conexión de almacenamiento de datos que el objeto de conexión requiere:
- un proveedor OLE DB (por ejemplo SQLOLEDB), utilizando la sintaxis "provider=";
- un nombre de archivo, usando la sintaxis "nombre de archivo=";
- un proveedor remoto y un servidor (ver RDS), utilizando la sintaxis "Remote provider=" y "Remote server="; o
- una URL absoluta, usando la sintaxis "URL="
- Comando
- Después de que el objeto de conexión establezca una sesión a la fuente de datos, se envían instrucciones al proveedor de datos a través del objeto de comando. El objeto de comando puede enviar consultas SQL directamente al proveedor a través del uso de la propiedad CommandText, enviar una consulta parametrizada o procedimiento almacenado a través del uso de un objeto Parameter o la colección Parameters o ejecutar una consulta y devolver los resultados a un objeto de conjunto de datos a través del método Execute. Hay varios otros métodos que se pueden utilizar en el objeto de comandos relacionados con otros objetos, como los objetos Stream, RecordSet o Connection.
- Recordset
- Un registro es un grupo de registros, y puede venir de una tabla base o como resultado de una consulta a la tabla. El objeto RecordSet contiene una colección de campos y una colección de propiedades. La colección Fields es un conjunto de objetos Field, que son las columnas correspondientes en la tabla. La colección Propiedades es un conjunto de objetos de propiedad, que define una funcionalidad particular de un proveedor OLE DB. El RecordSet tiene numerosos métodos y propiedades para examinar los datos que existen dentro de él. Los registros pueden actualizarse en el registro cambiando los valores del registro y luego llamando al método Update o UpdateBatch.
- Inmediatamente
- El registro está bloqueado usando el adLockOptimistic o adLockPessimistic lock. Los datos se actualizan en la fuente de datos después de cambiar el registro y se llama el método Update.
- Batch
- El registro está bloqueado usando adLockBatchOptimistic y cada vez que se llama actualización los datos se actualizan en un búfer temporal. Por último, cuando se llama UpdateBatch los datos se actualizan completamente en la fuente de datos. Esto tiene la ventaja de que todo se hace en memoria, y si un problema ocurre entonces se llama UpdateCancel y las actualizaciones no se envían a la fuente de datos.
- Transacción
- Si el proveedor OLE DB lo permite, las transacciones pueden utilizarse. Para iniciar la transacción, el programador invoca el método BeginTrans y hace las actualizaciones necesarias. Cuando se hacen todos, el programador invoca el método CommitTrans. Rollback Trans puede ser invocado para cancelar cualquier cambio realizado dentro de la transacción y devolver la base de datos al estado antes de que comience la transacción.
- Record
- Este objeto representa un registro en la base de datos y contiene una colección de campos. Un RecordSet consiste en una colección de objetos Record.
- Corriente
- Un flujo, principalmente utilizado en un objeto RecordSet, es un medio de lectura y escritura de un flujo de bytes. Se utiliza principalmente para guardar un registro en formato XML, enviar comandos a un proveedor OLE DB como alternativa al objeto CommandText y contener el contenido de un archivo binario o de texto.
- Parámetro
- Un parámetro es un medio de alterar el comportamiento de una pieza de funcionalidad común, por ejemplo un procedimiento almacenado podría tener diferentes parámetros que se le pasan dependiendo de lo que hay que hacer; estos se llaman comandos parametrizados.
- Campo
- Cada objeto Record contiene muchos campos, y un objeto RecordSet tiene también un objeto Campo correspondiente. El objeto Field del objeto RecordSet corresponde a una columna en la tabla de bases de datos que hace referencia.
- Propiedad
- Este objeto es específico para el proveedor OLE DB y define una habilidad que el proveedor ha implementado. Un objeto de propiedad puede ser una propiedad incorporada — es una propiedad bien definida implementada por ADO ya y por lo tanto no puede ser alterada —o puede ser una propiedad dinámica— definida por el proveedor de datos subyacente y puede ser cambiada
- Error
- Cuando se produce un error de proveedor OLE DB durante el uso de ADO, se creará un objeto Error en la colección Errores. Otros errores no entran en un objeto Error, sin embargo. Por ejemplo, cualquier error que ocurra al manipular datos en un objeto RecordSet o Field se almacena en una propiedad Status.
Uso básico
Se requieren algunos pasos básicos para poder acceder a los datos y manipularlos mediante ADO:
- Cree un objeto de conexión para conectarse a la base de datos.
- Cree un objeto de registro para recibir datos.
- Abra la conexión
- Popular el registro abriéndolo y pasando el nombre de tabla deseado o la declaración SQL como parámetro a abierto función.
- Haga toda la búsqueda/procesamiento deseada en los datos obtenidos.
- Comprobar los cambios que hizo a los datos (si los hay) utilizando Actualización o UpdateBatch métodos.
- Cerrar el registro
- Cerrar la conexión
Ejemplo ASP
Este es un ejemplo de ASP que usa ADO para seleccionar el "Nombre" campo, de una tabla llamada "Agenda telefónica", donde un "Número de teléfono" era igual a "555-5555".
dim mi conexión, myrecordset, Nombreset mi conexión = servidor.crearobject()"ADODB.Connection")set myrecordset = servidor.crearobject()"ADODB.Recordset")mi conexión.abierto mydatasourcemyrecordset.abierto "Phonebook", mi conexión myrecordset.encontrar "PhoneNumber = '555-5555"Nombre = myrecordset.campos.Tema()"Nombre")myrecordset.cercaset myrecordset = nadaset mi conexión = nada
Esto es equivalente al siguiente código ASP, que usa SQL simple en lugar de la funcionalidad del objeto Recordset:
dim mi conexión, myrecordset, Nombreset mi conexión = servidor.crearobject()"ADODB.connection")mi conexión.abierto mydatasourceset myrecordset = mi conexión.ejecutar()"SELECTO DE NOMBRE DE LOCAL DE LOCAL DE LOCAL DE FONDO = '555-555555'")Nombre = myrecordset()0)
Soporte de software
ADO es compatible con cualquier lenguaje de desarrollo que admita el enlace a interfaces COM binarias. Estos lenguajes incluyen ASP, Delphi, PowerBuilder y Visual Basic para Aplicaciones (VBA). La compatibilidad con ADO ahora se ha agregado a dBase Plus 8 (con ADO)
Legado
ADO.NET reemplazó a ADO de la misma manera que C#/.NET reemplazó a C/Win32 como modo principal para el desarrollo de aplicaciones de Windows. ADO.NET sigue el mismo patrón de diseño que ADO, lo que permite a un desarrollador de ADO avanzar fácilmente al pasar al marco de.NET.
Contenido relacionado
Gusano morris
Ordenador personal
Manzana IIe