fbpx
Wikipedia

ActiveX Data Objects

ActiveX Data Objects (ADO) es uno de los mecanismos que usan los programas de computadoras para comunicarse con las bases de datos, darles órdenes y obtener resultados de ellas.

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) y el lenguaje VBScript.

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, 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.

Está previsto que para el 2006 salga una nueva versión del entorno.NET que tendrá una versión mejorada de ADO.NET, denominada ADO.NET 2.

+-----+------+ | DAO | RDO | +-----+------+ | ADO | +------------+ | ADO.NET | +------------+ | ADO.NET 2 | +------------+ | ADO.NET 3.5| +------------+ 


Funcionamiento

ADO es un intermediario entre el programa y la base de datos. El programa no ve la base de datos directamente, sino que hace todo el trabajo a través de ADO. Usando ADO, el programa se comunica con la base de datos, consulta, edita, inserta, borra registros, añade tablas, etc. ADO a su vez se comunica con la base de datos a través de un "proveedor de datos".

El programa usa ADO para hacer una solicitud a la base de datos: "Dame el nombre y apellido de todos los empleados que vivan en Venezuela" 
Programa ---> ADO ---> Proveedor de datos ---> Base de datos 

En la dirección contraria, la base de datos responde, comunicándose con el proveedor de datos, éste con ADO, y al final, la información llega al programa.

La base de datos responde 
Programa <--- ADO <--- Proveedor de datos <--- Base de datos 
+--------+-----------+ | Nombre | Apellido | +--------+-----------+ | José | Pereira | | Juan | Pérez | | María | Hernández | +--------+-----------+ 

Una vez que el programa tiene la información proveniente de la base de datos, puede hacer con ella lo que considere, como por ejemplo, puede desplegarla en una página Web.

Los usuarios solicitados son los siguientes:

Nombre Apellido
José Pereira
Juan Pérez
María Hernández

Componentes de ADO

Principales componentes de ADO

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

Otros componentes de ADO

  • Récord (Permite manejar un registro, típicamente pero no exclusivamente, 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 manejar 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)

Objetos Connection, Recordset y Command

Los 3 principales componentes de ADO son Connection, Recordset y Command (la conexión, el recordset, y la orden).

  +------------+ +----| Connection |----+ | +------------+ | |  | +-----+-----+ +-----+-----+ | Recordset |----------| Command | +-----------+ +-----------+ 

La Conexión

La conexión es como una autopista que permite el flujo de datos entre el programa y la base de datos. Por 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 autopista, 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".

+----------+ +-----------+ +---------+ | Conexión | ------> | Proveedor | ------> | Base de | | | <------ | de datos | <------ | datos | +----------+ +-----------+ +---------+ 

El proveedor de datos

El proveedor de datos es un componente que se relaciona directamente con la base de datos. Hay un proveedor de datos por cada tipo de base de datos. Así, las bases de datos de tipo Access, SQL Server, Oracle, MySQL, tienen, cada una, un proveedor de datos específico.

La conexión ADO puede usar dos tipos de proveedores de datos, OLE DB y ODBC, siendo OLE DB el tipo de proveedor nativo.

Cuando no existe un proveedor de OLE DB específico para una base de datos determinada, y en cambio existe un proveedor ODBC, la conexión ADO puede usarlo para comunicarse con la base de datos, sin embargo, no directamente, sino a través de un proveeor OLE DB especial que sirve de intermediario entre ADO y ODBC.

La figura de abajo muestra, a la izquierda, un esquema de los diferentes componentes que existen entre un programa y la base de datos, y, a la derecha, muestra el camino que recorre la información, usando por un lado OLE DB, y por el otro ODBC. Nótese que al usar ODBC, la ruta es más larga porque tiene que pasarse por más componentes. Esto hace la comunicación un poco más lenta.

  Con OLE DB Con ODBC +---------------+ +---------------+ +---------------+ | Programa | | Programa | | Programa | +---------------+ | | | | | | | ADO | | ADO | | ADO | +---------------+ | | | | | | | OLE DB | | OLEDB | | OLEDB (OLE DB especial para | +--------+ | | | | | comunicación con cualquier ODBC) | | ODBC | | | | | ODBC | +------+--------+ | | | | | | | Base de datos | | Base de datos | | Base de datos | +---------------+ +---------------+ +---------------+ 

Todo esto es transparente al usuario de ADO, quien, en líneas generales, 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 3 maneras diferentes, a través de OLE DB, 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.

+------------------------+ | Programa | +---+-------+-------+----+ 1 2 3 +---+----+--+---+---+----+ | OLE DB | ODBC | OLE DB | | | +--------+ | | | ODBC | +--------+------+--------+ | Base de datos | +------------------------+ 

El Recordset

El Recordset es, como su nombre lo indica, un conjunto de records. En general, sus datos tienen su origen en una base de datos, aunque también pueden generarse independientemente de esta.

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. Podemos verlo como una matriz o tabla, en donde las filas son los records, y las columnas son los campos.

Recordset con algunos datos de la tabla de empleados: 
+------------+---------+----------+ | IdEmpleado | Nombre | Apellido | +------------+---------+----------+ | 1 | Luis | Pérez | <-- Record 1 +------------+---------+----------+ | 5 | José | Abreu | <-- Record 2 +------------+---------+----------+ | 3 | Pedro | León | <-- Record 3 +------------+---------+----------+ | 7 | María | Marcano | <-- Record 4 +------------+---------+----------+ | | | | | +------- Campo "Apellido" | | | +------------------ Campo "Nombre" | +----------------------------- Campo "IdEmpleado" 

Un recordset puede tener varias características que el programador define a su conveniencia. Puede ser de solo lectura, o de lectura-escritura, por ejemplo.

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.

El Comando

La orden (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.

Ejemplo de uso de ADO desde Visual Basic

En este ejemplo se asume un Formulario con un DataGrid. Se usará la base de datos "Neptuno.mdb" que viene en las instalaciones en español de Microsoft Office y de Visual Basic.

Referencia a ADO

Para poder usar ADO desde Visual Basic, lo primero que debemos hacer es referenciar el componente ADO. Esto se hace por el menú "Proyecto\Referencias" y en la ventana que sale, seleccionamos ADO, que en la lista se verá como

Microsoft ActiveX Data Objects X.XX Library 

en donde X.XX representa la versión de ADO que queremos usar, que puede ir desde la 1.5 hasta la 2.8. DFA Nota: Un computador pudiera tener instalada una o más versiones simultáneamente y debemos elegir una de ellas. Las versiones más recientes tienen más funcionalidades y tienen menos errores que las antiguas.

La conexión con la base de datos

Para trabajar con una base de datos, primero debemos establecer una conexión con esta.

En el Formulario, declaramos el objeto MiConexión, que nos permitirá la conexión con la base de datos

' declaro el objeto MiConexion como una variable de módulo. ' Cuando se instancie será la conexión con la base de datos Dim MiConexion As ADODB.Connection 

En este momento, el objeto MiConexion solo está declarado, pero todavía no existe porque no ha sido instanciado.

En el evento Form_Load, instanciamos el objeto MiConexion, y establecemos la conexión con la base de datos para poder comunicarnos con ella.

Private Sub Form_Load() ' Instancio la conexión (ahora la conexión existe) Set MiConexión = New ADODB.Connection 
 With MiConexión ' Cursor en Cliente para poder usar un DataGrid .CursorLocation = adUseClient ' Abro la conexión con la base de datos Neptuno.mdb usando su DSN .Open "DSN=Neptuno" End With End Sub 

Ya tengo la conexión instanciada y ya me he conectado con la base de datos. La autopista está abierta y funcionando.

Ahora puedo hacer cosas con la información que contiene la base de datos. Puedo leerla, escribirla, borrarla, modificarla, etc. También puedo manipular la propia base de datos. Puedo crear tablas, modificarlas, puedo crear usuarios, etc.

Leo información de la base de datos

Ahora que tenemos la conexión establecida con la base de datos, queremos leer información de esta y mostrarla en la pantalla.

Especificamos la información que queremos

Primero, debemos especificarle, a la base de datos, qué información queremos. Esto se hace mediante una sentencia SQL.

Por ejemplo. Queremos el ID y el Nombre del producto para todos los productos cuyo Nombre contenga la palabra "Queso".

Esta es la sentencia SQL que necesitamos SELECT IdProducto, NombreProducto FROM Productos WHERE NombreProducto LIKE '%Queso%' 

La sentencia SQL de arriba significa lo siguiente:

Indicamos, a la base de datos, que nos devuelva dos campos, IdProducto y NombreProducto SELECT IdProducto, NombreProducto 
Indicamos en qué Tabla, de la base de datos, están los campos previamente señalados Están en la Tabla Productos FROM Productos 
Indicamos una condición. Queremos solo los registros en cuyo nombre esté la palabra "Queso" WHERE NombreProducto LIKE '%Queso%' 

En Visual basic, creamos una variable de string a la que llamaremos "SQL". Podríamos llamarla como querramos, podríamos llamarla "Aguacate", Visual Basic lo manejaría sin problemas, pero es mejor darle un nombre que tenga sentido para nosotros y que corresponda con el uso que se le va a dar.

Dim SQL As String 

A esa variable le asignamos un texto que será la orden que le vamos a enviar a la base de datos. Este texto es la sentencia SQL que acabamos de crear arriba.

SQL = "SELECT IdProducto, NombreProducto" & vbCrLf & _ "FROM Productos" & vbCrLf & _ "WHERE NombreProducto LIKE '%Queso%'" 

Ya tenemos especificado la orden que le vamos a enviar a la base de datos para que nos devuelva los registros con la información que queremos. Ahora debemos crear un Recordset, que es el objeto de ADO donde se recibirá la información proveniente de la base de datos.

Usamos un Recordset para recibir la información desde la base de datos

Declaramos el objeto Recordset que recibirá la información de la base de datos

Dim rs As ADODB.Recordset 

La variable "rs" recibirá los datos provenientes de la base de datos.

Ahora usamos la conexión para enviar la orden a la base de datos para que nos devuelva la información.

Set rs = MiConexion.Execute(SQL) 

Cuando se ejecuta la sentencia previa, la conexión "MiConexion", ejecuta la orden contenida en la variable "SQL". Esto significa que la orden es enviada a la base de datos y esta responde devolviendo la información requerida. "MiConexion" lee esa información proveniente de la base de datos, y la convierte en un Recordset, el cual es asignado al objeto "rs".

Ahora el Recordset "rs" tiene la información que llegó desde la base de datos, lista para ser usada. Allí tenemos, todos los registros de la Tabla "Productos" que cumplan con la condición de que en el campo "NombreProducto" contenga la palabra "queso". En el Recordset solo se encuentran los campos que especificamos, "IdProducto" y "NombreProducto".

Mostramos la información que contiene el Recordset en un DataGrid

En el Recordset "rs" tenemos la información. Esta información es usable de muchas maneras, ya que con el Recordset tal y como está podemos recorrer esa información y manipularla, añadir registros, borrarlos, etc.

Sin embargo, en este ejemplo, queremos mostrarla en un DataGrid.

Para ello, solo tenemos que asignar el Recordset a la propiedad DataSource del DataGrid. Una vez hecho esto, el DataGrid mostrará el contenido del recordset.

Set DataGrid1.DataSource = rs 

Código completo del programa

Nota: Para que el programa funcione solo hay que añadir un control DataGrid al Formulario y una referencia a Microsoft ActiveX Data Objects X.XX Library.

Option Explicit 
' ---------------------------------------------------------- ' Declaro el objeto MiConexion como una variable de módulo. ' Cuando se instancie será la conexión con la base de datos. ' ---------------------------------------------------------- Dim MiConexión As ADODB.Connection 
' ---------------------------------------------------------- ' Al cargarse el Formulario hago el trabajo. ' (Aquí, a lo sumo, solo debería establecerse la conexión con la base de datos, ' y las demás cosas se deberían hacer en otro lado, ' pero este es solo un ejemplo sencillo) ' ---------------------------------------------------------- Private Sub Form_Load() ' ---------------------------------------------------------- ' Instancio la conexión y me conecto con la base de datos ' ---------------------------------------------------------- Set MiConexión = New ADODB.Connection 
 With MiConexión  ' Cursor en Cliente para poder usar un DataGrid  .CursorLocation = adUseClient  ' Abro la conexión con la base de datos usando un DSN  .Open "DSN=Neptuno" End With ' ---------------------------------------------------------- ' Especifico qué información quiero de la base de datos ' ---------------------------------------------------------- Dim SQL As String 
 SQL = "SELECT IdProducto, NombreProducto" & vbCrLf & _  "From Productos" & vbCrLf & _  "WHERE NombreProducto LIKE '%Queso%'" ' ---------------------------------------------------------- ' Cargo el recordset con la información proveniente de la base de datos ' ---------------------------------------------------------- Dim rs As ADODB.Recordset 
 Set rs = MiConexión.Execute(SQL) ' ---------------------------------------------------------- ' Muestro la información en el DataGrid ' ---------------------------------------------------------- Set DataGrid1.DataSource = rs End Sub 

Imagen del programa

Se muestran los artículos de la Tabla Productos cuyos nombres contengan la palabra "queso".

 

Véase también

Bases de datos

Lenguaje de consultas para bases de datos relacionales

  • SQL (Structured Query Language)

Componentes para manejo de bases de datos

  • MDAC (Microsoft Data Access Components)
  • OLE DB (Object Linking and Embedding for Databases)
  • ODBC (Open Database Connectivity)
  • ADO.NET
  • DAO (Data Access Objects)
  • RDS (Remote Data Services)
  • Microsoft Jet Database Engine

Plataformas de desarrollo y lenguajes de programación

Enlaces externos

  • Página de inicio de ADO 2.8
  •   Datos: Q344005

activex, data, objects, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, marzo, 2020, mecanismos, usan, programas, computadoras, para, comunicarse, bases, datos, darles, órdenes, obtener, resultados, ella. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 14 de marzo de 2020 ActiveX Data Objects ADO es uno de los mecanismos que usan los programas de computadoras para comunicarse con las bases de datos darles ordenes y obtener resultados de ellas Con ADO un programa puede leer insertar editar o borrar la informacion contenida en diferentes areas de almacenamiento dentro de la base de datos llamadas tablas Ademas se puede manipular la propia base de datos para crear nuevas areas para el almacenamiento de informacion tablas como tambien alterar o eliminar las ya existentes entre otras cosas Fue desarrollado por Microsoft y es usado en ambientes Windows por lenguajes de programacion como Visual Basic C Delphi entre otros como tambien en la Web mediante el uso de Active Server Pages ASP y el lenguaje VBScript Indice 1 Evolucion 2 Funcionamiento 3 Componentes de ADO 4 Objetos Connection Recordset y Command 4 1 La Conexion 4 1 1 El proveedor de datos 4 2 El Recordset 4 3 El Comando 5 Ejemplo de uso de ADO desde Visual Basic 5 1 Referencia a ADO 5 2 La conexion con la base de datos 5 3 Leo informacion de la base de datos 5 3 1 Especificamos la informacion que queremos 5 3 2 Usamos un Recordset para recibir la informacion desde la base de datos 5 4 Mostramos la informacion que contiene el Recordset en un DataGrid 5 5 Codigo completo del programa 5 6 Imagen del programa 6 Vease tambien 7 Enlaces externosEvolucion EditarADO substituyo 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 mas sencillo de usar y de entender y por lo tanto mas facil y menos engorroso de programar La ultima version de ADO creada por Microsoft se llama ADO NET y se usa en los entornos de programacion 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 version del ASP para la plataforma NET En la plataforma de programacion de software libre llamada Mono tambien existe una biblioteca similar a ADO NET lo que significa que ahora la tecnologia ADO NET se puede usar en otros sistemas operativos aparte de Windows como Linux Mac OS X BSD y Solaris ADO NET es mucho mas poderoso que ADO pero tambien es muy diferente por lo que es necesario redisenar los programas hechos con ADO para que funcionen en el Esta previsto que para el 2006 salga una nueva version del entorno NET que tendra una version mejorada de ADO NET denominada ADO NET 2 DAO RDO ADO ADO NET ADO NET 2 ADO NET 3 5 Funcionamiento EditarADO es un intermediario entre el programa y la base de datos El programa no ve la base de datos directamente sino que hace todo el trabajo a traves de ADO Usando ADO el programa se comunica con la base de datos consulta edita inserta borra registros anade tablas etc ADO a su vez se comunica con la base de datos a traves de un proveedor de datos El programa usa ADO para hacer una solicitud a la base de datos Dame el nombre y apellido de todos los empleados que vivan en Venezuela Programa gt ADO gt Proveedor de datos gt Base de datos En la direccion contraria la base de datos responde comunicandose con el proveedor de datos este con ADO y al final la informacion llega al programa La base de datos responde Programa lt ADO lt Proveedor de datos lt Base de datos Nombre Apellido Jose Pereira Juan Perez Maria Hernandez Una vez que el programa tiene la informacion proveniente de la base de datos puede hacer con ella lo que considere como por ejemplo puede desplegarla en una pagina Web Los usuarios solicitados son los siguientes Nombre ApellidoJose PereiraJuan PerezMaria HernandezComponentes de ADO EditarPrincipales componentes de ADO Connection Permite establecer una conexion con la base de datos Recordset Maneja un conjunto de records de la base de datos Command Permite enviar ordenes SQL para ser ejecutados por la base de datos Otros componentes de ADO Record Permite manejar un registro tipicamente pero no exclusivamente de una fuente diferente a una base de datos Uno de sus usos es la representacion de datos que no estan estructurados en forma de Tablas como por ejemplo que tengan una estructura tipo arbol Field Permite manipular un campo perteneciente a un Record o un Recordset Parameter Permite configurar un parametro para una consulta SQL Se usa con Command Stream Permite manejar flujos de datos streams provenientes de ficheros de texto paginas web etc Error Indica las caracteristicas de los errores que pudieran suceder al ejecutar metodos de los objetos de ADO Property Contiene informacion perteneciente a un objeto determinado Objetos Connection Recordset y Command EditarLos 3 principales componentes de ADO son Connection Recordset y Command la conexion el recordset y la orden Connection Recordset Command La Conexion Editar La conexion es como una autopista que permite el flujo de datos entre el programa y la base de datos Por ella pueden viajar las ordenes que desde el programa se usan para hacer solicitudes de informacion a la base de datos o para realizar una operacion dentro de ella como borrar registros anadir registros modificar tablas etc Tambien por esta autopista pueden ir y venir los datos desde y hacia la base de datos entre otras cosas Tanto el recordset como la orden usan la conexion para comunicarse con la base de datos La conexion se comunica con la base de datos a traves de un intermediario llamado proveedor de datos Conexion gt Proveedor gt Base de lt de datos lt datos El proveedor de datos Editar El proveedor de datos es un componente que se relaciona directamente con la base de datos Hay un proveedor de datos por cada tipo de base de datos Asi las bases de datos de tipo Access SQL Server Oracle MySQL tienen cada una un proveedor de datos especifico La conexion ADO puede usar dos tipos de proveedores de datos OLE DB y ODBC siendo OLE DB el tipo de proveedor nativo Cuando no existe un proveedor de OLE DB especifico para una base de datos determinada y en cambio existe un proveedor ODBC la conexion ADO puede usarlo para comunicarse con la base de datos sin embargo no directamente sino a traves de un proveeor OLE DB especial que sirve de intermediario entre ADO y ODBC La figura de abajo muestra a la izquierda un esquema de los diferentes componentes que existen entre un programa y la base de datos y a la derecha muestra el camino que recorre la informacion usando por un lado OLE DB y por el otro ODBC Notese que al usar ODBC la ruta es mas larga porque tiene que pasarse por mas componentes Esto hace la comunicacion un poco mas lenta Con OLE DB Con ODBC Programa Programa Programa ADO ADO ADO OLE DB OLEDB OLEDB OLE DB especial para comunicacion con cualquier ODBC ODBC ODBC Base de datos Base de datos Base de datos Todo esto es transparente al usuario de ADO quien en lineas generales no tiene por que enterarse ni conocer estos mecanismos ADO tiene un alto grado de abstraccion 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 3 maneras diferentes a traves de OLE DB 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 programacion Esto es necesario algunas veces en ciertos tipos de programas y para ciertas necesidades pero no es lo comun Programa 1 2 3 OLE DB ODBC OLE DB ODBC Base de datos El Recordset Editar El Recordset es como su nombre lo indica un conjunto de records En general sus datos tienen su origen en una base de datos aunque tambien pueden generarse independientemente de esta Un recordset puede contener cero o mas records registros Cada recordset tiene una coleccion de campos que es comun a todos los records Podemos verlo como una matriz o tabla en donde las filas son los records y las columnas son los campos Recordset con algunos datos de la tabla de empleados IdEmpleado Nombre Apellido 1 Luis Perez lt Record 1 5 Jose Abreu lt Record 2 3 Pedro Leon lt Record 3 7 Maria Marcano lt Record 4 Campo Apellido Campo Nombre Campo IdEmpleado Un recordset puede tener varias caracteristicas que el programador define a su conveniencia Puede ser de solo lectura o de lectura escritura por ejemplo La informacion con que se carga el recordset puede provenir de una tabla o varias tablas de la base de datos El recordset tiene capacidades de navegacion entre su conjunto de registros Puede Moverse al siguiente registro Moverse al anterior Moverse al primero Moverse al ultimo y otrosEn 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 Ademas de editar registros tambien se puede Insertar registros nuevos Borrar registrosLa edicion la insercion y el borrado de registros en el recordset se reflejaran en la base de datos El Comando Editar La orden command es el componente ADO que permite hacer solicitudes o dar ordenes a la base de datos mediante una sentencia SQL Se puede especificar la insercion de registros nuevos en una tabla asi como tambien la eliminacion la actualizacion y la obtencion de registros con determinadas condiciones Ademas se pueden crear alterar y modificar las caracteristicas de las tablas que conforman la base de datos Ejemplo de uso de ADO desde Visual Basic EditarEn este ejemplo se asume un Formulario con un DataGrid Se usara la base de datos Neptuno mdb que viene en las instalaciones en espanol de Microsoft Office y de Visual Basic Referencia a ADO Editar Para poder usar ADO desde Visual Basic lo primero que debemos hacer es referenciar el componente ADO Esto se hace por el menu Proyecto Referencias y en la ventana que sale seleccionamos ADO que en la lista se vera como Microsoft ActiveX Data Objects X XX Library en donde X XX representa la version de ADO que queremos usar que puede ir desde la 1 5 hasta la 2 8 DFA Nota Un computador pudiera tener instalada una o mas versiones simultaneamente y debemos elegir una de ellas Las versiones mas recientes tienen mas funcionalidades y tienen menos errores que las antiguas La conexion con la base de datos Editar Para trabajar con una base de datos primero debemos establecer una conexion con esta En el Formulario declaramos el objeto MiConexion que nos permitira la conexion con la base de datos declaro el objeto MiConexion como una variable de modulo Cuando se instancie sera la conexion con la base de datos Dim MiConexion As ADODB Connection En este momento el objeto MiConexion solo esta declarado pero todavia no existe porque no ha sido instanciado En el evento Form Load instanciamos el objeto MiConexion y establecemos la conexion con la base de datos para poder comunicarnos con ella Private Sub Form Load Instancio la conexion ahora la conexion existe Set MiConexion New ADODB Connection With MiConexion Cursor en Cliente para poder usar un DataGrid CursorLocation adUseClient Abro la conexion con la base de datos Neptuno mdb usando su DSN Open DSN Neptuno End With End Sub Ya tengo la conexion instanciada y ya me he conectado con la base de datos La autopista esta abierta y funcionando Ahora puedo hacer cosas con la informacion que contiene la base de datos Puedo leerla escribirla borrarla modificarla etc Tambien puedo manipular la propia base de datos Puedo crear tablas modificarlas puedo crear usuarios etc Leo informacion de la base de datos Editar Ahora que tenemos la conexion establecida con la base de datos queremos leer informacion de esta y mostrarla en la pantalla Especificamos la informacion que queremos Editar Primero debemos especificarle a la base de datos que informacion queremos Esto se hace mediante una sentencia SQL Por ejemplo Queremos el ID y el Nombre del producto para todos los productos cuyo Nombre contenga la palabra Queso Esta es la sentencia SQL que necesitamos SELECT IdProducto NombreProducto FROM Productos WHERE NombreProducto LIKE Queso La sentencia SQL de arriba significa lo siguiente Indicamos a la base de datos que nos devuelva dos campos IdProducto y NombreProducto SELECT IdProducto NombreProducto Indicamos en que Tabla de la base de datos estan los campos previamente senalados Estan en la Tabla Productos FROM Productos Indicamos una condicion Queremos solo los registros en cuyo nombre este la palabra Queso WHERE NombreProducto LIKE Queso En Visual basic creamos una variable de string a la que llamaremos SQL Podriamos llamarla como querramos podriamos llamarla Aguacate Visual Basic lo manejaria sin problemas pero es mejor darle un nombre que tenga sentido para nosotros y que corresponda con el uso que se le va a dar Dim SQL As String A esa variable le asignamos un texto que sera la orden que le vamos a enviar a la base de datos Este texto es la sentencia SQL que acabamos de crear arriba SQL SELECT IdProducto NombreProducto amp vbCrLf amp FROM Productos amp vbCrLf amp WHERE NombreProducto LIKE Queso Ya tenemos especificado la orden que le vamos a enviar a la base de datos para que nos devuelva los registros con la informacion que queremos Ahora debemos crear un Recordset que es el objeto de ADO donde se recibira la informacion proveniente de la base de datos Usamos un Recordset para recibir la informacion desde la base de datos Editar Declaramos el objeto Recordset que recibira la informacion de la base de datos Dim rs As ADODB Recordset La variable rs recibira los datos provenientes de la base de datos Ahora usamos la conexion para enviar la orden a la base de datos para que nos devuelva la informacion Set rs MiConexion Execute SQL Cuando se ejecuta la sentencia previa la conexion MiConexion ejecuta la orden contenida en la variable SQL Esto significa que la orden es enviada a la base de datos y esta responde devolviendo la informacion requerida MiConexion lee esa informacion proveniente de la base de datos y la convierte en un Recordset el cual es asignado al objeto rs Ahora el Recordset rs tiene la informacion que llego desde la base de datos lista para ser usada Alli tenemos todos los registros de la Tabla Productos que cumplan con la condicion de que en el campo NombreProducto contenga la palabra queso En el Recordset solo se encuentran los campos que especificamos IdProducto y NombreProducto Mostramos la informacion que contiene el Recordset en un DataGrid Editar En el Recordset rs tenemos la informacion Esta informacion es usable de muchas maneras ya que con el Recordset tal y como esta podemos recorrer esa informacion y manipularla anadir registros borrarlos etc Sin embargo en este ejemplo queremos mostrarla en un DataGrid Para ello solo tenemos que asignar el Recordset a la propiedad DataSource del DataGrid Una vez hecho esto el DataGrid mostrara el contenido del recordset Set DataGrid1 DataSource rs Codigo completo del programa Editar Nota Para que el programa funcione solo hay que anadir un control DataGrid al Formulario y una referencia a Microsoft ActiveX Data Objects X XX Library Option Explicit Declaro el objeto MiConexion como una variable de modulo Cuando se instancie sera la conexion con la base de datos Dim MiConexion As ADODB Connection Al cargarse el Formulario hago el trabajo Aqui a lo sumo solo deberia establecerse la conexion con la base de datos y las demas cosas se deberian hacer en otro lado pero este es solo un ejemplo sencillo Private Sub Form Load Instancio la conexion y me conecto con la base de datos Set MiConexion New ADODB Connection With MiConexion Cursor en Cliente para poder usar un DataGrid CursorLocation adUseClient Abro la conexion con la base de datos usando un DSN Open DSN Neptuno End With Especifico que informacion quiero de la base de datos Dim SQL As String SQL SELECT IdProducto NombreProducto amp vbCrLf amp From Productos amp vbCrLf amp WHERE NombreProducto LIKE Queso Cargo el recordset con la informacion proveniente de la base de datos Dim rs As ADODB Recordset Set rs MiConexion Execute SQL Muestro la informacion en el DataGrid Set DataGrid1 DataSource rs End Sub Imagen del programa Editar Se muestran los articulos de la Tabla Productos cuyos nombres contengan la palabra queso Vease tambien EditarBases de datos Base de datos Base de datos relacional RDBMS Relational Data Base Management System Lenguaje de consultas para bases de datos relacionales SQL Structured Query Language Componentes para manejo de bases de datos MDAC Microsoft Data Access Components OLE DB Object Linking and Embedding for Databases ODBC Open Database Connectivity ADO NETDAO Data Access Objects RDS Remote Data Services Microsoft Jet Database EnginePlataformas de desarrollo y lenguajes de programacion NET Mono Embarcadero Delphi Visual Basic Lenguaje de programacionEnlaces externos EditarPagina de inicio de ADO 2 8 Datos Q344005Obtenido de https es wikipedia org w index php title ActiveX Data Objects amp oldid 136238298, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos