You are on page 1of 6

ADOdb es un conjunto de bibliotecas de bases de datos para PHP y Python.

Esta permite a los programadores desarrollar aplicaciones web de una manera portable, rpida y fcil. La ventaja reside en que la base de datos puede cambiar sin necesidad de reescribir cada llamada a la base de datos realizada por la aplicacin. Segn el Sitio Oficial de ADOdb, son soportadas las siguientes bases de datos: MySQL PostgreSQL Interbase Firebird Informix Oracle MS SQL Foxpro Access Sybase ASE FrontBase DB2 SAP DB SQLite Netezza LDAP Cabe notar que ADOdb usa SQL. Teniendo en cuenta que cada base de datos implementa SQL de una manera levemente diferente, es trabajo del desarrollador prestar cuidadosa atencin a las caractersticas y funciones especficas de la base de datos para mantener la portabilidad del cdigo. 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 informacin contenida en diferentes reas de almacenamiento dentro de la base de datos llamadas tablas. Adems, se puede manipular la propia base de datos para crear nuevas reas para el almacenamiento de informacin (tablas), como tambin alterar o eliminar las ya existentes, entre otras cosas. Evolucin 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 ms sencillo de usar y de entender y por lo tanto ms fcil y menos engorroso de programar. La ltima versin de ADO, creada por Microsoft, se llama ADO.NET, y se usa en los entornos de programacin 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 versin del ASP para la plataforma.NET. En la plataforma de programacin de software libre llamada Mono tambin existe una biblioteca similar a ADO.NET, lo que significa que ahora, la tecnologa ADO.NET se puede usar en otros sistemas operativos aparte de Windows, como Linux, Mac OS X, BSD, y Solaris. ADO.NET es mucho ms poderoso que ADO pero tambin es muy diferente, por lo que es necesario redisear los programas hechos con ADO, para que funcionen en l. 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 travs de ADO. Usando ADO, el programa se comunica con la base de datos, consulta, edita, inserta, borra, registros, aade tablas, etc. ADO a su vez se comunica con la base de datos a travs 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 direccin contraria, la base de datos responde, comunicndose con el proveedor de datos, ste con ADO, y al final, la informacin llega al programa. La base de datos responde Programa <--- ADO <--- Proveedor de datos <--- Base de datos +--------+-----------+ | Nombre | Apellido | +--------+-----------+ | Jos | Pereira | | Juan | Prez | | Mara | Hernndez | +--------+-----------+ Una vez que el programa tiene la informacin proveniente de la base de datos, puede hacer con ella lo que considere, como por ejemplo, puede desplegarla en una pgina Web. Los usuarios solicitados son los siguientes: Nombre Apellido Jos Juan Pereira Prez

Mara Hernndez Componentes de ADO Principales componentes de ADO Connection (Permite establecer una conexin 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 Record (Permite manejar un registro, tpicamente pero no exclusivamente, de una fuente diferente a una base de datos. Uno de sus usos es la representacin de datos que no estn 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 parmetro para una consulta SQL. Se usa con Command) Stream (Permite manejar flujos de datos (streams), provenientes de ficheros de texto, pginas web, etc) Error (Indica las caractersticas de los errores que pudieran suceder al ejecutar mtodos de los objetos de ADO) Property (Contiene informacin perteneciente a un objeto determinado) Objetos Connection, Recordset y Command

Los 3 principales componentes de ADO son Connection, Recordset y Command (la conexin, el recordset, y la orden). La Conexin La conexin 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 informacin a la base de datos o para realizar una operacin dentro de ella como borrar registros, aadir registros, modificar tablas, etc. Tambin, 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 conexin para comunicarse con la base de datos. La conexin se comunica con la base de datos a travs de un intermediario llamado "proveedor de datos". +----------+ +-----------+ +---------+ | Conexin | ------> | 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 especfico. La conexin 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 especfico para una base de datos determinada, y en cambio existe un proveedor ODBC, la conexin ADO puede usarlo para comunicarse con la base de datos, sin embargo, no directamente, sino a travs 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 informacin, usando por un lado OLE DB, y por el otro ODBC. Ntese que al usar ODBC, la ruta es ms larga porque tiene que pasarse por ms componentes. Esto hace la comunicacin un poco ms lenta. Con OLE DB Con ODBC +---------------+ +---------------+ +---------------+ | Programa | | Programa | | Programa | +---------------+ | | | | | | | ADO | | ADO | | ADO | +---------------+ | | | | | | | OLE DB | | OLEDB | | OLEDB (OLE DB especial para | +--------+ | | | | | comunicacin con cualquier ODBC) | | ODBC | | | | | ODBC | +------+--------+ | | | | | | | Base de datos | | Base de datos | | Base de datos | +---------------+ +---------------+ +---------------+ Todo esto es transparente al usuario de ADO, quien, en lneas generales, no tiene por que enterarse ni conocer estos mecanismos. ADO tiene un alto grado de abstraccin, 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 travs 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 programacin. Esto es necesario algunas veces, en ciertos tipos de programas y para ciertas necesidades, pero no es lo comn. 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 tambin pueden generarse independientemente de sta. Un recordset puede contener cero o ms records (registros). Cada recordset tiene una coleccin de campos, que es comn 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 | Prez | <-- Record 1 +------------+---------+----------+ | 5 | Jos | Abreu | <-- Record 2 +------------+---------+----------+ | 3 | Pedro | Len | <-- Record 3 +------------+---------+----------+ | 7 | Mara | Marcano | <-- Record 4 +------------+---------+----------+ | | | | | +------- Campo "Apellido" | | | +------------------ Campo "Nombre" | +----------------------------- Campo "IdEmpleado" Un recordset puede tener varias caractersticas que el programador define a su conveniencia. Puede ser de solo lectura, o de lectura-escritura, por ejemplo. La informacin con que se carga el recordset puede provenir de una tabla o varias tablas, de la base de datos. El recordset, tiene capacidades de navegacin 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. Adems de editar registros, tambin se puede: Insertar registros nuevos Borrar registros Las edicin, la insercin y el borrado de registros en el recordset, se reflejarn en la Base de Datos. El Command 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 insercin de registros nuevos en una tabla, as como tambin, la eliminacin la actualizacin y la obtencin de registros con determinadas condiciones.

Adems, se pueden crear, alterar y modificar las caractersticas de las tablas que conforman la base de datos. Caracteristicas especiales de ADOdb Facil para programadores Windows debido a que muchas de las convenciones son similares al ADO de Microsoft. A diferencia de otras clases PHP de base de datos que se enfocas unicamente en el enunciado SELECT. ADOdb soporta codigo para manajar INSERT y UPDATE que son rapidamente adaptables a multiples bases de datos. Tambien hay metodos para manejo de fechas, concatenacion de cadenas y encomillado de cadenas para diferentes bases de datos. Tiene un systema de metatipos (metatype) para poder determinar cuales tipos como CHAR, TEXT and STRING son equivalentes en diferentes bases de datos. Es facil de portar debido a que todo el codigo que depende de la base de datos esta en funciones. Tu no tienes que portar la logica principal de las clases. Creacion de tablas e indices portable con las clases de diccionario de datos datadict. Monitor de rendimiento de base de datos y ajuste de enunciados SQL con la clase de performance monitoring. Sesiones en base de datos con la clase session management. Maneja notificacion por sesion vencida. Mapeo a Objectos Relacionales uando la clase ADOdb_Active_Record. Como se esta usando ADOdb Aqaui hay algunos ejemplos de como la gente esta usando ADOdb (para una lista mas larga visita la pagina http://adodb.sourceforge.net/): PhpLens es una aplicacion comercial de cuadricula de datos que permite tanto a programadores expertos como a novatos desarrollar y mantener en la Web bases de datos facilmente. Desarrollado por el autor de ADOdb. PHAkt: Extension PHP para el DreamWeaver de Ultradev que permite codifijar en PHP en el popular editor de paginas Web. El manejo de bases de datos lo proporciona ADOdb. Analysis Console for Intrusion Databases (ACID): Motor de analisis basado en PHP para buscar y procesar una base de datos de incidentes de seguridad generada por algun software de seguridad como IDSes y firewalls (ej. Snort, ipchains). Por Roman Danyliw. PostNuke es un polular sistema de administracion de contenido y sistema weblog. Con soporte total de CSS, transaciciones HTML 4.01 y manejo de varios lenguajes. EasyPublish CMS es otro sistema de control de contenidos gratuito para administrar informacion y modulos integrados. Desde Noruega. NOLA es un sistema completo de contabilidad, inventarios y control de trabajos. Tiene licencia GPL. Desarrollado por Noguska. Modelo de datos ADO ADO (ActiveX Data Objects) es una tecnologa 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 programacin de bajo nivel de OLE DB a la hora de acceder a datos almacenados en BD relacionales o no relacionales. En su lugar, los objetos ADO, por ser componentes ActiveX, pueden invocarse desde cualquiera de los lenguajes ms populares en Internet que trabajen con

objetos para acceder a toda la potencia de OLE DB, pero sin recurrir a la programacin de bajo nivel. Los objetos ADO son independientes del lenguaje que se utilice al accederlos (JavaScript, VBScript, etc.) y permiten conectar su pgina web a cualquier BD compatible con ODBC a travs de un interfaz basado en objetos. Las pginas ASP creadas en este curso representan un claro ejemplo de cmo utilizando un lenguaje de alto nivel como Visual Basic pueden introducirse llamadas a objetos ADO para trabajar adecuadamente con las BD. ADO expone al programador tres objetos principales para acceder a los datos: el objeto Connection, el objeto Command y el objeto RecordSet. Este ltimo, el objeto RecordSet, es el ms importante y potente, aunque, por simplicidad, en este curso introductorio se ha utilizado en la mayora de los casos el objeto Connection. El proceso de peticin 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 comunicacin de datos con el servidor. 2. El cliente crea un objeto Command que almacenar sentencias SQL para realizar operaciones en la BD. 3. Se enva el objeto Command al servidor a travs 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 travs de la conexin establecida. 6. El cliente recibe los registros y puede moverse por ellos. 7. Se pueden enviar nuevas consultas al servidor mediante objetos Command a travs del objeto Connection. 8. Se libera la conexin con el servidor.

You might also like