Objetos de datos ActiveX - ActiveX Data Objects

En computación , Microsoft 's ActiveX Data Objects ( ADO ) comprende un conjunto de modelo de objetos componentes (COM) de objetos para acceder a 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 los datos sin saber cómo se implementa la base de datos; los desarrolladores deben conocer la base de datos solo para la conexión. Sin conocimiento deSe requiere 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 del tipo de base de datos utilizada).

Microsoft introdujo 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

Los 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 en ese objeto Recordset. En un objeto de registro, un campo puede ser una URL absoluta o relativa que apunta a un espacio de nombres estructurado en árbol (utilizado 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 Property, que se encuentran en la colección Properties 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 de parámetro 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 colección Errores en sí está contenida en un objeto Connection. Cuando una operación de 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 usando su método 'Abrir' con una cadena de conexión que especifica la conexión como una lista de pares clave-valor (por ejemplo: "Proveedor = 'SQLOLEDB'; Fuente de datos = 'TheSqlServer'; Catálogo inicial = 'Northwind'; Seguridad integrada = 'SSPI'; "). El inicio de esta cadena de conexión debe identificar el tipo de conexión del 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 (ver RDS), usando la sintaxis "Proveedor remoto =" y "Servidor remoto ="; o
  • una URL absoluta, utilizando la sintaxis "URL ="
Mando
Una vez que el objeto de conexión establece una sesión con la fuente de datos, las instrucciones se envían 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 de parámetro o colección de parámetros o ejecutar una consulta y devolver los resultados a un objeto de conjunto de datos a través del Ejecutar método. Hay varios otros métodos que se pueden utilizar en el objeto Command relacionados con otros objetos, como los objetos Stream, RecordSet o Connection.
Recordset
Un juego de registros es un grupo de registros y puede provenir de una tabla base o como 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 de 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 juego de registros se bloquea mediante el bloqueo adLockOptimistic o adLockPessimistic. Los datos se actualizan en la fuente de datos después de que se cambia el registro y se llama al método de actualización.
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 hace 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 terminan, 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 a 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
Una secuencia, que se utiliza principalmente en un objeto RecordSet, es un medio para leer y escribir una secuencia de bytes. Se utiliza principalmente para guardar un juego de registros 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 función común, por ejemplo, un procedimiento almacenado puede tener diferentes parámetros pasados ​​dependiendo de lo que se deba 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, ya sea 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 cambiar
Error
Cuando se produce un error del proveedor OLE DB durante el uso de ADO, se creará un objeto Error en la colección Errores. Sin embargo, otros errores no entran en un objeto Error. 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 y manipular datos usando ADO:

  1. Cree un objeto de conexión para conectarse a la base de datos.
  2. Cree un objeto de conjunto de registros para recibir datos en formato.
  3. Abre la conexión
  4. Complete el juego de registros abriéndolo y pasando el nombre de la tabla deseada o la instrucción SQL como parámetro para abrir la función.
  5. Realice toda la búsqueda / procesamiento que desee en los datos obtenidos.
  6. Confirme los cambios que realizó en los datos (si los hubiera) mediante los métodos Update o UpdateBatch .
  7. Cerrar el juego de registros
  8. Cerrar la conexión

Ejemplo ASP

Aquí hay un ejemplo de ASP usando 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.close

set myrecordset = nothing
set myconnection = nothing

Esto es equivalente al siguiente código ASP, que usa 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 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 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 como objetivo. ADO.NET sigue el mismo patrón de diseño que ADO, lo que permite al desarrollador de ADO un camino fácil hacia adelante cuando se cambia al marco .NET.

Ver también

Referencias

enlaces externos