Ado (ActiveX data objects)

ActiveX data objects (ADO)
Información sobre la plantilla
Parte de la familia Almacenamiento de datos
Bits.jpg
Modelo de objetos de lenguaje neutro.
CreadorMicrosoft
DesarrolladorMicrosoft
Diseñado porMicrosoft
VersionesDAO (Data Access Object)y RDO (Remote Data Object).
Última versión estableADO.NET
Sistemas Operativos compatiblesWindows
IdiomaInglés
ActiveX data objects (Ado). Modelo de objetos de lenguaje neutro que exponen datos provocados por un proveedor OLE DB subyacente.

Generalidades

Es una tecnología orientada a objetos para componentes ActiveX basada en una API en C++ llamada OLE DB. Para los programadores presenta la inestimable ventaja de poder prescindir de los detalles de programación de bajo nivel de OLE DB a la hora de acceder a datos almacenados en bases de datos relacionales o no relacionales. En su lugar, los objetos ADO, por ser componentes ActiveX, pueden invocarse desde cualquiera de los lenguajes más populares en Internet que trabajen con objetos para acceder a toda la potencia de OLE DB, pero sin recurrir a la programación de bajo nivel. ADO forma parte de Microsoft Data Access Components (MDAC).

Con ADO, un programa puede leer, insertar, editar, o borrar la información contenida en diferentes áreas de almacenamiento dentro de la base de datos llamadas tablas. Además, se puede manipular la propia base de datos para crear nuevas áreas para el almacenamiento de información (tablas), como también alterar o eliminar las ya existentes, entre otras cosas. Fue desarrollado por Microsoft y es usado en ambientes Windows por lenguajes de programación como Visual Basic, C++, Delphi entre otros, como también en la Web mediante el uso de Active Server Pages (ASP), el lenguaje VBScript y otros.

Evolución

ADO substituyó tanto a DAO (Data Access Object), como a RDO (Remote Data Object), que eran los sistemas previos que se usaban para acceder a las bases de datos y bases de datos remotas, respectivamente. Tiene la mayor parte de la funcionalidad de ambos modelos y sin embargo es más sencillo de usar y de entender y por lo tanto más fácil y menos engorroso de programar. La última versión de ADO, creada por Microsoft, se llama ADO.NET (con varias versiones), y se usa en los entornos de programación de la plataforma .NET de Microsoft, para manejar bases de datos tanto en Windows como en la Web mediante ASP.NET, que es la nueva versión del ASP para la plataforma.NET.

En la plataforma de programación de software libre llamada Mono también existe una biblioteca similar a ADO.NET, lo que significa que ahora, la tecnología ADO.NET se puede usar en otros sistemas operativos aparte de Windows, como Linux, Mac OS X, BSD, y Solaris. ADO.NET es mucho más poderoso que ADO pero también es muy diferente, por lo que es necesario rediseñar los programas hechos con ADO, para que funcionen en él.

Funcionamiento

El proceso de petición de datos entre el cliente y el servidor de datos funciona de la siguiente manera:

  1. El cliente crea un objeto Connection para establecer un canal de comunicación de datos con el servidor.
  2. El cliente crea un objeto Command que almacenará sentencias SQL para realizar operaciones en la base de datos.
  3. Se envía el objeto Command al servidor a través del canal establecido con el objeto Connection.
  4. El servidor procesa la consulta SQL contenida en el objeto Command y produce como resultado un conjunto de registros contenidos en un objeto Recordset.
  5. El objeto Recordset le es devuelto al cliente a través de la conexión establecida.
  6. El cliente recibe los registros y puede moverse por ellos.
  7. Se pueden enviar nuevas consultas al servidor mediante objetos Command a través del objeto Connection.
  8. Se libera la conexión con el servidor.

Componentes

Principales

  • Connection (Permite establecer una conexión con la base de datos)
  • Recordset (Maneja un conjunto de records(registros) de la base de datos)
  • Command (Permite enviar órdenes SQL para ser ejecutados por la base de datos)

Otros

  • Record (Permite manejar un registro generalmente de una fuente diferente a una base de datos. Uno de sus usos es la representación de datos que no están estructurados en forma de tablas, como por ejemplo que tengan una estructura tipo árbol).
  • Field (Permite manipular un campo perteneciente a un Record o un Recordset)
  • Parameter (Permite configurar un parámetro para una consulta SQL. Se usa con Command)
  • Stream (Permite manipular flujos de datos (streams), provenientes de ficheros de texto, páginas web, etc)
  • Error (Indica las características de los errores que pudieran suceder al ejecutar métodos de los objetos de ADO)
  • Property (Contiene información perteneciente a un objeto determinado)

Connection, recordset y command

Los tres principales componentes de ADO son connection, recordset y command (la conexión, el recordset, y la orden).

Conexión

Es el medio que permite el flujo de datos entre el programa y la base de datos. A través de ella pueden viajar las órdenes que desde el programa se usan para hacer solicitudes de información a la base de datos o para realizar una operación dentro de ella como borrar registros, añadir registros, modificar tablas, etc. También, por esta vía, pueden ir y venir los datos, desde y hacia la base de datos, entre otras cosas. Tanto el recordset como la orden usan la conexión para comunicarse con la base de datos.

La conexión se comunica con la base de datos a través de un intermediario llamado "proveedor de datos". Todo esto es transparente al usuario de ADO, quien, generalmente, no tiene por qué enterarse ni conocer estos mecanismos. ADO tiene un alto grado de abstracción, lo que significa que, al mantener una interface sencilla, oculta los detalles complejos del manejo de la base de datos.

Un programa puede saltarse completamente el ADO, y acceder a la base de datos directamente de tres maneras diferentes, a través de OLDB, ODBC, o por ODBC usando una capa intermedia de OLE DB. Al trabajar de esta manera, se tiene la ventaja de una mayor funcionalidad que no contiene ADO a cambio de una mayor complejidad en la programación. Esto es necesario algunas veces, en ciertos tipos de programas y para ciertas necesidades, pero no es lo común.

Recordset

El Recordset es un conjunto de records. En general, sus datos tienen origen en una base de datos, aunque también pueden generarse independientemente de ésta. Un recordset puede contener cero o más records (registros). Cada recordset tiene una colección de campos que es común a todos los records. Se le puede ver como una matriz o tabla, en donde las filas son los records, y las columnas son los campos.

Un recordset puede tener varias características que pueden modificar el programador. Por ejemplo, puede ser de solo lectura, o de lectura-escritura. La información con que se carga el recordset puede provenir de una tabla o varias tablas, de la base de datos. El recordset, tiene capacidades de navegación entre su conjunto de registros. Puede:

  • Moverse al siguiente registro
  • Moverse al anterior
  • Moverse al primero
  • Moverse al último
  • y otros

En un recordset, se ve y se pueden editar los datos de un solo registro en un tiempo dado, se pueden manipular los datos de los campos del "registro actual" en donde se encuentra. Además de editar registros, también se puede:

  • Insertar registros nuevos
  • Borrar registros

La edición, la inserción y el borrado de registros en el recordset se reflejarán en la base de datos.

Comando

La orden o comando (command) es el componente ado que permite hacer solicitudes o dar órdenes a la base de datos mediante una sentencia sql. Se puede especificar la inserción de registros nuevos en una tabla, así como también, la eliminación la actualización y la obtención de registros con determinadas condiciones. Además, se pueden crear, alterar y modificar las características de las tablas que conforman la base de datos.

Ado md

Microsoft ActiveX data objects (Multidimensional) (ADO MD) proporciona acceso fácil a datos multidimensionales desde lenguajes como Microsoft Visual Basic, Microsoft Visual C++, y Microsoft Visual J++. Ado md extiende Microsoft ActiveX Data Objects (Ado) para incluir objetos específicos para datos multidimensionales, como son los objetos CubeDef y Cellset. Con Ado md se pueden explorar esquemas multidimensionales, consultar datos y extraer los resultados.

Al igual que Ado, Ado md utiliza un proveedor OLE DB subyacente para obtener el acceso a los datos. Para trabajar con Ado md, el proveedor debe ser un proveedor de datos multidimensionales (MDP-> Multidimensional Data Provider). Los MDPs presentan los datos en vistas multidimensionales de forma opuesta a como lo hacen los proveedores de datos tabulares (TDP).

Fuentes