API del modelo de objetos de componentes para acceder a fuentes de datos
En informática , ActiveX Data Objects ( ADO ) de Microsoft comprende un conjunto de objetos del Modelo de objetos componentes (COM) para acceder a fuentes de datos. Como parte de MDAC (Microsoft Data Access Components), proporciona una capa intermedia entre los lenguajes de programación y OLE DB (un medio para acceder a almacenes de datos, ya sean bases de datos o no, de manera uniforme). ADO permite a un desarrollador escribir programas que acceden a los datos sin saber cómo está implementada la base de datos; los desarrolladores deben conocer la base de datos solo para la conexión. No se requieren conocimientos de SQL para acceder a una base de datos cuando se utiliza ADO, aunque se puede utilizar ADO para ejecutar comandos SQL directamente (con la desventaja de introducir una dependencia en el tipo de base de datos utilizada).
Microsoft introdujo ADO en octubre de 1996, posicionando al software como un sucesor de las capas de objetos anteriores de Microsoft para acceder a fuentes de datos, incluidos RDO (Remote Data Objects) y DAO (Data Access Objects).
ADO está formado por cuatro colecciones y doce objetos.
Colecciones ADO
- Campos
- Esta colección contiene un conjunto de objetos Field. La colección se puede utilizar en un objeto Recordset o 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 ese objeto Recordset. En un objeto Record, un Field puede ser una URL absoluta o relativa que apunta a un espacio de nombres estructurado en árbol (usado para proveedores de datos semiestructurados como el proveedor Microsoft OLE DB para publicación en Internet) o como una 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 de propiedades del objeto.
- Parámetros
- Un objeto de comando puede tener varios comandos de parámetros para cambiar su comportamiento predefinido, y cada uno de los objetos de parámetros está contenido en la colección de parámetros del objeto de comando.
- Errores
- Todos los errores creados por el proveedor se pasan a una colección de objetos Error, mientras que la propia colección Errors está contenida en un objeto Connection. Cuando una operación ADO crea un error, la colección se borra 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 un almacén de datos a través de OLE DB. El objeto de conexión almacena información sobre la sesión y proporciona métodos para conectarse al almacén de datos. Como 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 en particular. 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 de valores clave (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 "provider=";
- un nombre de archivo, utilizando la sintaxis "nombre de archivo=";
- un proveedor y servidor remoto (ver 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 a través del objeto de comando. El objeto de comando puede enviar consultas SQL directamente al proveedor mediante el uso de la propiedad CommandText, enviar una consulta parametrizada o un procedimiento almacenado mediante el uso de 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 utilizar en el objeto Command relacionados con otros objetos, como los objetos Stream, RecordSet o Connection.
- Conjunto de registros
- Un conjunto de registros es un grupo de registros y puede proceder de una tabla base o ser el resultado de una consulta a la tabla. El objeto RecordSet contiene una colección Fields y una colección Properties. La colección Fields es un conjunto de objetos Field, que son las columnas correspondientes en la tabla. La colección Properties es un conjunto de objetos Property, 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 se pueden actualizar en el conjunto de registros cambiando los valores en el registro y luego 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 completamente en la fuente de datos. Esto tiene la ventaja de que todo se realiza en la memoria y, si ocurre 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 utilizar transacciones. Para iniciar la transacción, el programador invoca el método BeginTrans y realiza las actualizaciones necesarias. Cuando todas están terminadas, el programador invoca el método CommitTrans. Se puede invocar RollbackTrans para cancelar cualquier cambio realizado dentro de la transacción y revertir la base de datos al estado anterior al inicio de la transacción.
- 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, que se utiliza principalmente en un objeto RecordSet, es un medio para leer y escribir un flujo de bytes. Se utiliza principalmente para guardar un conjunto de registros en formato XML, para enviar comandos a un proveedor OLE DB como alternativa al objeto CommandText y para contener el contenido de un archivo binario o de texto.
- Parámetro
- Un parámetro es un medio para alterar el comportamiento de una pieza común de funcionalidad, por ejemplo, a un procedimiento almacenado se le pueden pasar diferentes parámetros dependiendo de lo que se necesite hacer; estos se denominan comandos parametrizados.
- Campo
- Cada objeto Record contiene muchos campos y un objeto RecordSet también tiene un objeto Field correspondiente. El objeto Field del objeto RecordSet corresponde a 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 capacidad que el proveedor ha implementado. Un objeto de propiedad puede ser una propiedad incorporada (es una propiedad bien definida implementada por ADO y, por lo tanto, no se puede modificar) o puede ser una propiedad dinámica (definida por el proveedor de datos subyacente y se puede modificar).
- Error
- Cuando se produce un error del proveedor OLE DB durante el uso de ADO, se creará 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
Se requieren algunos pasos básicos para poder acceder y manipular datos mediante ADO:
- Crea un objeto de conexión para conectarte a la base de datos.
- Cree un objeto de conjunto de registros para recibir datos.
- Abrir la conexión
- Rellene el conjunto de registros abriéndolo y pasando el nombre de la tabla deseada o la declaración SQL como parámetro a la función de apertura .
- Realice todas las búsquedas y procesamientos deseados en los datos obtenidos.
- Confirme los cambios realizados en los datos (si los hay) mediante los métodos Update o UpdateBatch .
- Cerrar el conjunto de registros
- Cerrar la conexión
Ejemplo ASP
Aquí hay un ejemplo de ASP que utiliza ADO para seleccionar el campo "Nombre" de una tabla llamada "Libreta telefónica", donde un "Número de teléfono" era igual a "555-5555".
dim myconnection , myrecordset , name establecer myconnection = server . createobject ( "ADODB.Connection" ) establecer myrecordset = server . createobject ( "ADODB.Recordset" ) miconexión . abrir miorigendedatos miconjuntoderecords . abrir "Agenda telefónica" , miconexión miconjuntoderecords . buscar "NúmeroDeTeléfono = '555-5555'" nombre = miconjuntoderecords . campos . elemento ( "Nombre" ) miconjuntoderecords . cerrar establecer myrecordset = nada establecer myconnection = 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 establecer myconnection = server . createobject ( "ADODB.connection" ) myconnection . open mydatasource establecer myrecordset = myconnection .execute ( "SELECT Nombre FROM Libreta telefónica DONDE NúmeroDeTeléfono = '555-5555'" ) nombre = 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). Ahora se ha agregado compatibilidad con ADO a dBase Plus 8 (con ADO)
Legado
ADO.NET ha reemplazado a ADO de la misma manera que C#/.NET reemplazó a C/Win32 como el 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 los desarrolladores de ADO avanzar fácilmente hacia el marco .NET.
Véase también
- ADO.NET
- Comparación de ADO y ADO.NET
- MSDAIPP
Referencias
Enlaces externos
- Página ADO de Microsoft
- Cadenas de conexión de bases de datos Archivado el 26 de enero de 2021 en Wayback Machine .
- Referencia rápida de ADO de DevGuru