Articulo de referencia

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 fuentes de datos. Com...

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 fuentes de datos. Como parte de MDAC (Componentes de Acceso a Datos de Microsoft), proporcionan una capa intermedia entre los lenguajes de programación y OLE DB (un método para acceder a almacenes de datos, sean o no bases de datos , de forma uniforme). ADO permite a los desarrolladores escribir programas que acceden a datos sin necesidad de conocer la implementación de la base de datos; solo deben conocerla para la conexión. No se requieren conocimientos de SQL para acceder a una base de datos con ADO, aunque es posible usar ADO para ejecutar comandos SQL directamente (con la desventaja de introducir una dependencia del tipo de base de datos utilizada).

Microsoft presentó ADO en octubre de 1996, posicionando el software como sucesor de las capas de objetos anteriores de Microsoft para acceder a fuentes de datos, incluidas 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 Field. La colección se puede usar tanto en un objeto Recordset como en un objeto Record. En un objeto Recordset, cada uno de los objetos Field que componen la colección Fields corresponde a una columna de dicho objeto Recordset. En un objeto Record, un Field puede ser una URL absoluta o relativa que apunta a un espacio de nombres con estructura de árbol (utilizado para proveedores de datos semiestructurados como el proveedor Microsoft OLE DB para publicación en Internet) o una referencia al objeto Stream predeterminado asociado con ese objeto Record.
Propiedades
Un objeto puede tener más de un objeto Property, los cuales están contenidos en la colección Properties del objeto.
Parámetros
Un objeto Command puede tener varios comandos Parameter para cambiar su comportamiento predefinido, y cada uno de los objetos Parameter está contenido en la colección Parameters del objeto Command.
Errores
Todos los errores generados por el proveedor se transfieren a una colección de objetos Error, mientras que la colección Errors se encuentra dentro de un objeto Connection. Cuando una operación ADO genera un error, la colección se vacía y se crea un nuevo grupo de objetos Error dentro de ella.

objetos ADO

Conexión
El objeto de conexión es la conexión de ADO a un almacén de datos mediante OLE DB. Este objeto almacena información sobre la sesión y proporciona métodos para conectarse al almacén de datos. Dado que algunos almacenes de datos tienen diferentes métodos para establecer una conexión, es posible que algunos métodos no sean compatibles con el objeto de conexión para un proveedor OLE DB específico. Un objeto de conexión se conecta al almacén de datos mediante su método 'Open' con una cadena de conexión que especifica la conexión como una lista de pares clave-valor (por ejemplo: "Provider='SQLOLEDB';Data Source='TheSqlServer'; Initial Catalog='Northwind';Integrated Security='SSPI';"). El inicio de esta cadena de conexión debe identificar el tipo de conexión al almacén de datos que requiere el objeto de conexión.
  • un proveedor OLE DB (por ejemplo SQLOLEDB), utilizando la sintaxis "proveedor=";
  • un nombre de archivo, utilizando la sintaxis "nombre de archivo=";
  • un proveedor y servidor remotos (consulte RDS), utilizando la sintaxis "Proveedor remoto=" y "Servidor remoto="; o
  • una URL absoluta, utilizando la sintaxis "URL="
Dominio
Una vez que el objeto de conexión establece una sesión con la fuente de datos, se envían instrucciones al proveedor de datos mediante el objeto de comando. Este objeto puede enviar consultas SQL directamente al proveedor mediante la propiedad CommandText, enviar una consulta parametrizada o un procedimiento almacenado mediante un objeto Parameter o una colección Parameters, o ejecutar una consulta y devolver los resultados a un objeto de conjunto de datos mediante el método Execute. Existen otros métodos que se pueden usar en el objeto Command relacionados con otros objetos, como Stream, RecordSet o Connection.
Conjunto de registros
Un conjunto de registros es un grupo de registros que puede provenir de una tabla base o ser el resultado de una consulta a dicha tabla. El objeto RecordSet contiene una colección de campos y una colección de propiedades. La colección de campos es un conjunto de objetos Field, que corresponden a las columnas de la tabla. La colección de propiedades es un conjunto de objetos Property, que define una funcionalidad específica de un proveedor OLE DB. El RecordSet dispone de numerosos métodos y propiedades para examinar los datos que contiene. Los registros se pueden actualizar en el conjunto de registros modificando sus valores y, a continuación, llamando al método Update o UpdateBatch.
Inmediato
El conjunto de registros se bloquea mediante el bloqueo adLockOptimistic o adLockPessimistic. Los datos se actualizan en la fuente de datos después de que se modifica el registro y se llama al método Update.
Lote
El conjunto de registros se bloquea mediante adLockBatchOptimistic y, cada vez que se llama a Update, los datos se actualizan en un búfer temporal. Finalmente, cuando se llama a UpdateBatch, los datos se actualizan por completo en la fuente de datos. Esto tiene la ventaja de que todo se realiza en memoria y, si se produce un problema, se llama a UpdateCancel y las actualizaciones no se envían a la fuente de datos.
Transacción
Si el proveedor OLE DB lo permite, se pueden usar transacciones. Para iniciar la transacción, el programador invoca el método BeginTrans y realiza las actualizaciones necesarias. Una vez finalizadas, invoca el método CommitTrans. Se puede invocar RollbackTrans para cancelar cualquier cambio realizado dentro de la transacción y restaurar la base de datos al estado anterior a su inicio.
Registro
Este objeto representa un registro en la base de datos y contiene una colección de campos. Un RecordSet consta de una colección de objetos Record.
Arroyo
Un flujo de datos, utilizado principalmente en un objeto RecordSet, es un medio para leer y escribir una secuencia de bytes. Se usa sobre todo para guardar un conjunto de registros en formato XML, para enviar comandos a un proveedor OLE DB como alternativa al objeto CommandText y para almacenar el contenido de un archivo binario o de texto.
Parámetro
Un parámetro es un medio para alterar el comportamiento de una funcionalidad común; por ejemplo, a un procedimiento almacenado se le pueden pasar diferentes parámetros dependiendo de lo que se deba hacer; estos se denominan comandos parametrizados.
Campo
Cada objeto Record contiene varios campos, y un objeto RecordSet también tiene un objeto Field correspondiente. El objeto Field del objeto RecordSet se corresponde con una columna de la tabla de la base de datos a la que hace referencia.
Propiedad
Este objeto es específico del proveedor OLE DB y define una funcionalidad que dicho proveedor ha implementado. Un objeto de propiedad puede ser una propiedad integrada (una propiedad bien definida implementada por ADO y, por lo tanto, no se puede modificar) o una propiedad dinámica (definida por el proveedor de datos subyacente y que se puede modificar).
Error
Cuando se produce un error del proveedor OLE DB durante el uso de ADO, se crea un objeto Error en la colección Errors. Sin embargo, otros errores no se almacenan en un objeto Error. Por ejemplo, los errores que se producen al manipular datos en un objeto RecordSet o Field se almacenan en una propiedad Status.

Uso básico

Para poder acceder y manipular datos utilizando ADO, se requieren algunos pasos básicos  :

  1. Crea un objeto de conexión para conectarte a la base de datos.
  2. Cree un objeto de conjunto de registros para recibir datos.
  3. Abrir la conexión
  4. Rellene el conjunto de registros abriéndolo y pasando el nombre de la tabla deseada o la instrucción SQL como parámetro a la función de apertura .
  5. Realice todas las búsquedas y el procesamiento que desee sobre los datos obtenidos.
  6. Confirme los cambios que haya realizado en los datos (si los hay) utilizando los métodos Update o UpdateBatch .
  7. Cerrar el conjunto de registros
  8. Cierra la conexión

Ejemplo de ASP

Aquí hay un ejemplo de ASP que utiliza ADO para seleccionar el campo "Nombre" de una tabla llamada "Agenda telefónica", donde un "Número de teléfono" era igual a "555-5555".

dim myconnection , myrecordset , name set myconnection = server.createobject ( " ADODB.Connection " ) set myrecordset = server.createobject ( " ADODB.Recordset " )myconnection.open mydatasource myrecordset.open " Phonebook " , myconnection myrecordset.find " PhoneNumber = ' 555-5555 ' " name = myrecordset.fields.item ( " Name " ) myrecordset.closeestablecer miconjunto de registros = nada establecer miconexión = nada

Esto es equivalente al siguiente código ASP, que utiliza SQL simple en lugar de la funcionalidad del objeto Recordset:

dim myconnection , myrecordset , name set myconnection = server.createobject ( " ADODB.connection" ) myconnection.open mydatasource set myrecordset = myconnection.execute ( " SELECT Name FROM Phonebook WHERE PhoneNumber = ' 555-5555' " ) name = myrecordset ( 0 )

Soporte de software

ADO es compatible con cualquier lenguaje de desarrollo que admita la vinculación a interfaces COM binarias. Estos lenguajes incluyen ASP, Delphi , PowerBuilder y Visual Basic para Aplicaciones (VBA). La compatibilidad con ADO se ha añadido a dBase Plus 8 (con ADO).

Legado

ADO.NET ha sustituido a ADO de la misma manera que C#/.NET sustituyó a C/Win32 como principal plataforma para el desarrollo de aplicaciones para Windows. ADO.NET sigue el mismo patrón de diseño que ADO, lo que facilita la migración de los desarrolladores de ADO al framework .NET.

Véase también

Referencias

  • Página ADO de Microsoft
  • Cadenas de conexión a la base de datos. Archivado el 26 de enero de 2021 en Wayback Machine .
  • Guía de referencia rápida de DevGuru ADO