Make your own free website on Tripod.com

 

Bases de datos en Visual Basic

 

 

Cómo VB accesa a los datos

 

Con muy poca programación o ninguna es posible implementar el acceso a una base de datos. Sin embargo se hace necesario decidir el tipo de tecnología que se debe usar para construir una aplicación que permita accesar a la base de datos.

 

La interfaz del acceso a datos es un objeto que representa varias facetas. En Visual Basic existen tres interfases: Actives Data Objects (ADO), Remote Data Objects (RDO), y Data Access Objects (DAO). Usando VB, se puede programar el control, el acceso y la interacción en una base de datos con cualquier de estas tres tecnologías.

 

Visual Basic nos permite trabajar directamente con distintas bases de datos (ACCESS, dBaseIII, dBaseIV , dBase 5,  Excel3,  Excel4, Excel5, Excel7, FoxPro2.x, Foxpro3.0, LotusWK1, LotusWK3, LotusWk4,  Paradox3.x, Paradox4.x y Paradox5.x  Esto lo logra mediante el Motor de Bases de Datos Jet, herramienta de Microsoft para administrar los datos en bases de datos Access. Tiene un nombre que mas parece de una materia de ingeniería aeronáutica,  pero en realidad no es mas que un conjunto de programas que se cargan en el disco duro cuando instala Access o Visual Basic.  E esta forma de acceder a las bases de datos se le llama Acceso mediante objetos DAO.  Lo de DAO viene de Data Access Objet. Y es la forma más sencilla y rápida de acceder a una base de datos Access instalada en el propio disco duro o en un disco de red de área local rápida. (Lo de facilidad de acceso a una base de datos Access viene implícito en la política de Microsoft de facilitar la compatibilidad entre sus aplicaciones) 

 

Pero esto se quedaría muy corto si solamente se pudiese conectar con las bases de datos citadas. No se puede concebir un sistema de desarrollo que no pueda acceder a bases como Oracle, Informix, SQL Server, etc.  Estas bases de datos, aparte de tener su propia interface para acceso a datos, disponen de una forma de acceso común a todas : ODBC

 

Lo de ODBC (Open Data Base  Conectivity) es un mecanismo de conexión entre bases de datos abiertas. Lo de abiertas significa que tienen esa interface de acceso común, interface a través de la cual puede acceder a sus datos cualquier aplicación. Esta interface utiliza el lenguaje SQL, y es necesario establecer una conexión ODBC en Windows. Lo veremos mas adelante.

 

Los objetos DAO pueden acceder también a bases de datos a través de ODBC. Esto podemos decirlo con la versión DAO 3.5, no podemos decir lo mismo con la 2.5, procedimiento previsto pero que no funcionaba.

 

Este pobre funcionamiento de DAO con ODBC llevó a Microsoft a crear otro tipo de acceso a datos: el RDO  (Remote Data Objet), y los objetos de acceso a datos RDO.  Esto consiste en objetos parecidos a los DAO, pero que en vez de atacar directamente a la base de datos como lo hace DAO, lo hacen a través de una conexión ODBC previamente establecida en Windows.  Así por ejemplo, en un objeto DAO hablamos del nombre de la base de datos, refiriéndonos al nombre del fichero que contiene los datos (C:\Mis Documentos\MiBase.Mdb), y en RDO nos referimos al nombre de la conexión ODBC (Connection) refiriéndonos al nombre de una conexión ODBC ya establecida, que apunta a una base de datos que es donde vamos a leer o escribir. Este método tiene la gran ventaja de que podemos establecer hoy una conexión con una base determinada, y si queremos cambiar mañana la base de datos sobre la que vamos a trabajar, basta con cambiar esa conexión apuntando hacia otra base de datos. Así no es necesario realizar ningún cambio a nuestro código

 

Un error bastante general con los objetos RDO es pensar (seguramente por aquello de Remote Data Objet) que solamente pueden trabajar con una base de datos que esté en otro ordenador, al cual estaremos unidos por cualquier forma de conexión. No tiene nada que ver. RDO significa solamente que accedemos a los datos a través de ODBC, y podemos hacerlo (al igual que con DAO) a una base que esté en el mismo disco duro que la aplicación, o una que esté en un servidor unido a través de una Red de Area Local.

 

Pero RDO no tiene las prestaciones que tiene DAO para trabajar con bases de datos Access. De hecho, RDO pierde grandes facilidades que aporta DAO para este tipo de bases de datos. RDO trabaja sobre una conexión ya instalada, que apunta a una base de datos ya creada. Con RDO no podemos crear esa base de datos. Esto es obvio, con RDO podemos entrar en una base de datos Oracle, por ejemplo. Nadie puede pretender que Visual Basic cree una base de datos de esa marca. Sin embargo, con ADO sí podemos crear una base de datos Access. Piense en la facilidad para distribuir una aplicación que tenga una base de datos Access cuyos campos puedan tener un tamaño definido por el propio usuario. Bastaría poner una herramienta en la propia aplicación donde el usuario introdujese los tamaños de los campos tipo texto, para adaptar la base de datos a sus necesidades. Esto puede hacerlo con DAO puesto que nos permite crear bases de datos Access, pero no lo podemos hacer mediante RDO.

 

RDO utiliza una terminología ligeramente distinta de DAO. Por ejemplo, sonde en DAO ponemos OpenRecordset, en RDO debemos poner OpenResultset. Es una pena que no se pueda trabajar con la misma terminología y con todas las prestaciones que tiene DAO a través de ODBC. Esto mismo pensó Microsoft,  y esa fue la razón de implementar en los objetos DAO 3.5 la conexión ODBCDirect.

 

ODBCDirect nos permite trabajar con los mismos objetos DAO pero a través de una conexión ODBC, que en este caso, funciona. Puede ser un poco más lenta que DAO, pero en esto hay opiniones para todos. De esta forma es posible seguir utilizando los viejos métodos aprendidos para DAO (Y lo que es mejor, reutilizar el código ya escrito en anteriores aplicaciones) a través de una conexión ODBC.  Lo veremos mas adelante.

 

Pero no debemos pensar que aquí se acaban los métodos de acceso a datos. Existe otro mas, muy reciente denominado ADO. ADO quiere sustituir a DAO y RDO.

 

En este punto ponía hace dos años que eso lo va a determinar el mercado. Hoy (Nov.2002) se puede decir que ADO ha sustituido en todas las aplicaciones nuevas a RDO, y ha dejado a DAO solamente el mercado de las pequeñas aplicaciones domésticas. ADO es una maravilla. Por eso, la Guía del Estudiante dedica un nuevo capítulo y un amplio ejemplo a ADO. Pero eso no implica que no haya que ir paso a paso. Y primero hay que aprender DAO. Pero ahora todo lo que aprenda de DAO le va a servir para ADO, pues en ADO sí coincide el código. Aprendamos pues DAO, y luego aplicaremos nuestros conocimientos a ADO. La gran ventaja de ADO es que en aquellas aplicaciones que leen una base situada en un servidor, ocupa menos la red de área local, ya que trabaja una aplicación Cliente – Servidor.

 

 Adelanto de términos. Aplicaciones Cliente servidor Piense en una base de datos instalada en una red no muy rápida. Si creamos un acceso a datos (recordset) con DAO, el tráfico de datos por la red es muy grande, dado que puede darse el caso de tener que ver toda la base de datos para extraer de ella solamente un dato.  Una aplicación Cliente – Servidor  lo que hace es montar un programa en el servidor, al cual le pedimos desde nuestra aplicación el dato deseado. Ese programa posiblemente tenga que ver toda la base de datos para encontrar el dato que nos interesa, pero lo hace localmente en el servidor, sin verter todos los datos a la red de área local. Una vez que lo ha encontrado, nos pasa a través de la red el dato solicitado, con lo que bajamos el tráfico por la red de forma muy importante. Lo veremos mas adelante pero no con una gran profundidad. Es un tema que se sale necesariamente de este curso debido a su extensión. Existen multitud de libros que tratan el tema.


No se preocupe de los que acaba de leer. Con las explicaciones anteriores parece que esto de las bases de datos debe ser cosa de gurús informáticos, vedado al resto de los mortales. Nada mas lejos de la realidad. Y para demostrarlo, en lo que queda de capítulo vamos a trabajar con bases de datos SIN escribir una sola línea de código. No digo que sea lo mejor, pero puede hacerse. Esto se logra mediante controles OCX creados por Microsoft, que controlan directamente a ese conjunto de programas que habíamos dado en llamar Motor de bases de Datos Jet o a los programas similares de RDO o ADO.

 

A pesar de que se recomienda el uso de ADO para todo tipo de acceso a datos (en este curso practicaremos únicamente con esta tecnología), te presento para mayor información la gestión de bases de datos mediante el Control Data, DAO y RDO.

 

 

Home | VB |