Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
ActiveX Data Objects
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Referencias|t=20200314115559|informática}} '''ActiveX Data Objects''' ('''ADO''') es uno de los mecanismos que usan los [[Programa informático|programas]] de [[computadora]]s para comunicarse con las [[base de datos|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++]], [[Embarcadero Delphi|Delphi]] entre otros, como también en la [[World Wide Web|Web]] mediante el uso de [[Active Server Pages]] (ASP) y el lenguaje [[VBScript]]. == Evolución == <!-- Comentario: Acabo de separar el artículo en secciones, tengo que describir mucho mejor cada una de ellas --> 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 [[Active Server Pages|ASP]] para la plataforma.NET. En la plataforma de programación de [[software libre]] llamada [[Proyecto Mono|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 [[Sistema operativo|sistemas operativos]] aparte de [[Windows]], como [[GNU/Linux|Linux]], [[Mac OS X]], [[BSD]], y [[Solaris (sistema operativo)|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| +------------+ <!-- Comentario: en algún lado, después de Evolución tengo que explicar MDAC (Microsoft Data Access Components--> == Funcionamiento == <!-- Comentario: Acabo de separar el artículo en secciones, tengo que describir mucho mejor cada una de ellas --> <!-- Esta sección se dividirá, los proveedores de datos serán una subsección. Posteriormente, proveedores de datos podrá salir de aquí y convertirse en un artículo independiente, dejando aquí algo muy escueto --> 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: <span style="color:#008000;">"Dame el nombre y apellido de todos los empleados que vivan en Venezuela"</span> 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: {| border="1" cellpadding="2" cellspacing="0" ! style="background:#efefef;" | Nombre ! style="background:#efefef;" | Apellido |- | José || Pereira |- | Juan || Pérez |- | María || Hernández |} == Componentes de ADO == <!-- Comentario: Acabo de separar el artículo en secciones, tengo que describir mucho mejor cada una de ellas --> '''Principales componentes de ADO''' * Connection (Permite establecer una conexión con la base de datos) * Recordset (Maneja un conjunto de récords 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 de datos|estructura]] tipo [[Árbol (estructura de datos)|á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 interfaz 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 === <!-- Comentario: A medida que crezca este artículo, habrá que dividirlo en sub-artículos. Los diferentes componentes de ADO, la conexión, el recordset, etc, son candidatos perfectos para crear nuevos artículos. Mientras tanto, los describo aquí, y a medida que crezcan, o que vaya creando los otros artículos, iré simplificando lo que estoy haciendo aquí. --> El Recordset es, como su nombre lo indica, un conjunto de récords. 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 récords (registros). Cada recordset tiene una colección de campos, que es común a todos los récords. Podemos verlo como una matriz o tabla, en donde las filas son los récords, 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 === <!-- Comentario: Los colores en el programa mejoran significativamente la lectura del mismo, aunque se dificulta la edición de este texto Wiki. Se recomienda encarecidamente dejarlos. --> 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 <span style="color:#008000;">' declaró el objeto MiConexion como una variable de módulo. ' Cuando se instancie será la conexión con la base de datos</span> <span style="color:#0000ff;">Dim</span> <span style="color:#800000;">MiConexion</span> <span style="color:#0000ff;">As</span> <span style="color:#800000;">ADODB.Connection</span> 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. <span style="color:#0000ff;">Private Sub</span> <span style="color:#800000;">Form_Load</span>() <span style="color:#008000;">' Instancio la conexión (ahora la conexión existe)</span> <span style="color:#0000ff;">Set</span> <span style="color:#800000;">MiConexión</span> = <span style="color:#0000ff;">New</span> <span style="color:#800000;">ADODB.Connection</span> <span style="color:#0000ff;">With</span> <span style="color:#800000;">MiConexión</span> <span style="color:#008000;">' Cursor en Cliente para poder usar un DataGrid</span> .<span style="color:#800000;">CursorLocation</span> = <span style="color:#800000;">adUseClient</span> <span style="color:#008000;">' Abro la conexión con la base de datos Neptuno.mdb usando su [[DSN]]</span> .<span style="color:#800000;">Open</span> "DSN=Neptuno" <span style="color:#0000ff;">End With</span> <span style="color:#0000ff;">End Sub</span> 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 ==== <!-- Comentario: Los colores en el programa mejoran significativamente la lectura del mismo, aunque se dificulta la edición de este texto Wiki. Se recomienda encarecidamente dejarlos. --> 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". <span style="color:#008000;">Esta es la sentencia SQL que necesitamos</span> <span style="color:#0000ff;">SELECT</span> IdProducto, NombreProducto <span style="color:#0000ff;">FROM</span> Productos <span style="color:#0000ff;">WHERE</span> NombreProducto <span style="color:#0000ff;">LIKE</span> <span style="color:#FF0000;">'%Queso%'</span> La sentencia SQL de arriba significa lo siguiente: <span style="color:#008000;">Indicamos, a la base de datos, que nos devuelva dos campos, IdProducto y NombreProducto</span> <span style="color:#0000ff;">SELECT</span> IdProducto, NombreProducto <span style="color:#008000;">Indicamos en qué Tabla, de la base de datos, están los campos previamente señalados Están en la Tabla Productos</span> <span style="color:#0000ff;">FROM</span> Productos <span style="color:#008000;">Indicamos una condición. Queremos solo los registros en cuyo nombre esté la palabra "Queso"</span> <span style="color:#0000ff;">WHERE</span> NombreProducto <span style="color:#0000ff;">LIKE</span> <span style="color:#FF0000;">'%Queso%'</span> 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. <span style="color:#0000ff;">Dim <span style="color:#800000;">SQL</span> As String</span> 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. <span style="color:#800000;">SQL</span> = "SELECT IdProducto, NombreProducto" & <span style="color:#800000;">vbCrLf</span> & _ "FROM Productos" & <span style="color:#800000;">vbCrLf</span> & _ "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 <span style="color:#0000ff;">Dim</span> <span style="color:#800000;">rs</span> <span style="color:#0000FF;">As</span> <span style="color:#800000;">ADODB.Recordset</span> 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. <span style="color:#0000ff;">Set</span> <span style="color:#800000;">rs</span> = <span style="color:#800000;">MiConexion.Execute</span>(<span style="color:#800000;">SQL</span>) 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 === <!-- Comentario: Los colores en el programa mejoran significativamente la lectura del mismo, aunque se dificulta la edición de este texto Wiki. Se recomienda encarecidamente dejarlos. --> 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. <span style="color:#0000ff;">Set</span> <span style="color:#800000;">DataGrid1.DataSource</span> = <span style="color:#800000;">rs</span> === Código completo del programa === <!-- Comentario: Los colores en el programa mejoran significativamente la lectura del mismo, aunque se dificulta la edición de este texto Wiki. Se recomienda encarecidamente dejarlos. --> 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. <span style="color:#0000ff;">Option Explicit</span> <span style="color:#008000;">' ---------------------------------------------------------- ' Declaró el objeto MiConexion como una variable de módulo. ' Cuando se instancie será la conexión con la base de datos. ' ----------------------------------------------------------</span> <span style="color:#0000ff;">Dim</span> <span style="color:#800000;">MiConexión</span> <span style="color:#0000ff;">As</span> <span style="color:#800000;">ADODB.Connection</span> <span style="color:#008000;">' ---------------------------------------------------------- ' 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) ' ----------------------------------------------------------</span> <span style="color:#0000ff;">Private Sub</span> <span style="color:#800000;">Form_Load</span>() <span style="color:#008000;">' ---------------------------------------------------------- ' Instancio la conexión y me conecto con la base de datos ' ----------------------------------------------------------</span> <span style="color:#0000ff;">Set</span> <span style="color:#800000;">MiConexión</span> = <span style="color:#0000ff;">New</span> <span style="color:#800000;">ADODB.Connection</span> <span style="color:#0000ff;">With</span> <span style="color:#800000;">MiConexión</span> <span style="color:#008000;">' Cursor en Cliente para poder usar un DataGrid</span> .<span style="color:#800000;">CursorLocation</span> = <span style="color:#800000;">adUseClient</span> <span style="color:#008000;">' Abro la conexión con la base de datos usando un DSN</span> .<span style="color:#800000;">Open</span> "DSN=Neptuno" <span style="color:#0000ff;">End With</span> <span style="color:#008000;">' ---------------------------------------------------------- ' Especifico qué información quiero de la base de datos ' ----------------------------------------------------------</span> <span style="color:#0000ff;">Dim</span> <span style="color:#800000;">SQL</span> <span style="color:#0000ff;">As String</span> <span style="color:#800000;">SQL</span> = "SELECT IdProducto, NombreProducto" & <span style="color:#800000;">vbCrLf</span> & _ "From Productos" & <span style="color:#800000;">vbCrLf</span> & _ "WHERE NombreProducto LIKE '%Queso%'" <span style="color:#008000;">' ---------------------------------------------------------- ' Cargo el recordset con la información proveniente de la base de datos ' ----------------------------------------------------------</span> <span style="color:#0000ff;">Dim</span> <span style="color:#800000;">rs</span> <span style="color:#0000ff;">As</span> <span style="color:#800000;">ADODB.Recordset</span> <span style="color:#0000ff;">Set</span> <span style="color:#800000;">rs</span> = <span style="color:#800000;">MiConexión.Execute</span>(<span style="color:#800000;">SQL</span>) <span style="color:#008000;">' ---------------------------------------------------------- ' Muestro la información en el DataGrid ' ----------------------------------------------------------</span> <span style="color:#0000ff;">Set</span> <span style="color:#800000;">DataGrid1.DataSource</span> = <span style="color:#800000;">rs</span> <span style="color:#0000ff;">End Sub</span> === Imagen del programa === Se muestran los artículos de la Tabla Productos cuyos nombres contengan la palabra "queso". [[Archivo:DataGrid mostrando unos registros.png]] == Véase también == '''Bases 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.NET]] :* [[Data Access Objects|DAO]] (Data Access Objects) :* [[Remote Data Services|RDS]] (Remote Data Services) :* [[Microsoft Jet Database Engine]] '''Plataformas de desarrollo y lenguajes de programación''' :* [[.NET]] :* [[Proyecto Mono|Mono]] :* [[Embarcadero Delphi]] :* [[Visual Basic]] :* [[Lenguaje de programación]] == Enlaces externos == * [http://msdn2.microsoft.com/en-us/library/ms805098.aspx Página de inicio de ADO 2.8] {{Control de autoridades}} [[Categoría:Acceso a bases de datos]] [[Categoría:Interfaces de programación de aplicaciones de Microsoft]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Plantillas usadas en esta página:
Plantilla:Aviso
(
editar
)
Plantilla:Busca fuentes
(
editar
)
Plantilla:Control de autoridades
(
editar
)
Plantilla:Problemas artículo/validar
(
editar
)
Plantilla:Referencias
(
editar
)
Plantilla:Str mid
(
editar
)
Plantilla:Trim
(
editar
)
Módulo:Control de autoridades
(
editar
)
Módulo:No globals
(
editar
)
Módulo:String
(
editar
)
Módulo:Unsubst
(
editar
)
Esta página pertenece a 1 categoría oculta:
Categoría:Wikipedia:Referenciar informática
Buscar
Buscar
Edición de «
ActiveX Data Objects
»
Añadir idiomas
Añadir tema