| Artículos | 01 MAY 1996

Curso de programación con Delphi (y 10)

Tags: Histórico
Gestión de bases de datos
Jaime Peña.

Delphi proporciona excelentes herramientas para desarrollar aplicaciones de gestión de bases de datos.

Ya finalizando nuestra andadura en el curso de Delphi, que hemos desarrollado en los diez últimos meses, abordamos una de las capacidades más potentes de este entorno de trabajo de Borland: la gestión de bases de datos. Notará como programador que se trata de algo especialmente atractivo e interesante y que Delphi facilita sustancialmente el diseño y desarrollo en este ámbito.

Sus potentes componentes y unas excelentes herramientas complementarias, proporcionan todo lo necesario para generar aplicaciones autónomas, soportadas por el prestigioso Borland Database Engine, motor de bases de datos de Borland, que se utiliza en todas sus las herramientas de desarrollo y gestores de bases de datos. A la par, Delphi es una plataforma especialmente flexible para diseñar y comprobar aplicaciones cliente/servidor, para trabajos en redes de área local (LANs) y, dentro de sus versiones, Delphi Client/Server es la ideal para ello.

En este artículo del curso nos centraremos en aspectos esenciales, básicos, para desarrollar aplicaciones de gestión de bases de datos. Quedará pendiente, para otros artículos, ya más específicos y fuera de lo que es el propio curso, el tratamiento de otros más avanzados, como el uso y el desarrollo de aplicaciones en entornos cliente/servidor a través de redes de área local (LANs). Asimismo, herramientas tales como Borland Database Desktop o la configuración de Borland Database Engine, constituyen apartados que quedan fuera del alcance pretendido en un curso introductorio como el presente.

Data Access y Data Controls

En la paleta de componentes de Delphi encontramos dos fichas dedicadas a la gestión de bases de datos. En la ficha Data Access se agrupan aquellos componentes no visuales (que no se muestran en pantalla en tiempo de ejecución) que gestionan tablas y consultas SQL. Los componentes disponibles son los recogidos en la tabla de la Figura 1.

Algunos de estos componentes son imprescindibles para diseñar una aplicación de gestión de tablas (bases de datos), en concreto y como veremos más adelante, precisaremos de incluir componentes Table y DataSource, al menos, y en aplicaciones avanzadas, otros de consultas SQL.

En la ficha Data Controls se encuentran componentes visuales (que se muestran en pantalla en tiempos de ejecución), que tienen por misión proporcionar una interfaz entre la fuente de datos y el usuario. En concreto dispondremos de los recogidos en la tabla de la Figura 2.

Aquí acudiremos para implementar las interfaces de usuario; casi seguro que emplearemos un navegador, mediante un componente DBNavigator y expondremos información diversa utilizando los componentes adecuados según el tipo de datos a mostrar (texto, mediante DBText, edición de campos, mediante DBEdit, textos extensos, utilizando DBMemo, y así sucesivamente). Un componente especialmente útil y potente es DBGrid, que nos mostrará información en forma tabular, con excelentes capacidades de edición, ordenación, inserción, borrado, etc.

Fases del diseño

Las aplicaciones de gestión de bases de datos pueden ser todo lo complejas que deseemos. Su grado de refinamiento se puede referir al manejo de múltiples tablas (bases de datos, en terminología más habitual para muchos), apertura de tablas de estructura desconocida en tiempo de diseño y trabajo con tablas en entornos cliente/servidor, en los que es preciso fijar con precisión bloqueos ante ediciones redundantes y bloqueos de accesos no deseados.

Por el momento, trataremos de exponer un caso simple, en el que se supone conocida la tabla sobre la que trabajaremos y que no debemos preocuparnos de bloqueos ni restricciones. Para otros artículos quedará hablar de opciones avanzadas de aplicaciones en entornos cliente/servidor. En el caso más simple, los pasos a seguir son:

1) Insertar un componente tipo Table, que se encuentra en la ficha Data Access. Seguidamente, fijar sus propiedades. Primero, DatabaseName con la referencia del directorio en que se encuentra la base de datos que manejará. Puede referirse a un alias creado en Borland Database Engine. Eso es lo más acertado en el caso de utilizar la aplicación en entorno cliente/servidor. En nuestro ejemplo, lo hemos hecho así; usted tendrá que cambiar la referencia para su instalación concreta.

Segundo, la propiedad TableName hay que definirla con el nombre de la base de datos que utilizará. Puede seleccionarla directamente de la lista desplegable, al hacer clic sobre el botón flecha abajo que hay en su área de edición.

Tercero, la propiedad Active debe ponerla a TRUE, para que se active la carga de la base de datos y se muestren ya sus registros en los componentes visuales de consulta.

2) Insertar un componente tipo DataSource, que hay en la misma ficha. eso actuará de enlace y referencia con los componentes de consulta visuales. debe fijar su propiedad Dataset con el nombre de la Table que gestionará y enlazará. En nuestro caso con Table1.

3) Ahora, precisamos un componente visual que muestre los registros de la tabla. Utilizaremos uno del tipo DBGrid. Selecciónelo en la ficha Data Controls y déle las dimensiones precisas en el área de diseño del formulario. Además, asocie este componente con uno DataSource, dándole su nombre en la propiedad que así se denomina.

4) Para navegar por la tabla, es útil usar un componente visual del tipo DBNavigator, que se encuentra en la misma ficha. No es mala idea haber insertado antes uno tipo Panel con su propiedad Align fijada a alTop e insertar el DBNavigator en él.

5) Si ha incluido un Panel, puede volver a seleccionar el componente DBGrid y fijar su propiedad Align con el valor alClient. Así, al redimensionar la ventana del formulario, la tabla ocupará todo el área disponible y serán más visibles los campos de los registros.

Modos de trabajo con tablas

Una primera cuestión es cómo trabajamos con las tablas durante la fase de diseño de nuestra aplicación. Puede que tengamos la propiedad Active con el valor TRUE; si es así, los componente data aware (aquellos que recogen datos de consultas de registros), nos mostrarán los valores actuales de la tabla durante el diseño. La ventaja es que la tabla ya está activada y podremos ver mejor la apariencia de nuestro formulario.

También tiene sus desventajas; si la tabla está activada, el motor de bases de datos de Borland (Borland Database Engine) bloqueará la tabla (el acceso al archivo de bases de datos) y no podrá ser utilizada por ninguna otra aplicación. Eso puede ser un seguro, si deseamos garantizar que no haya interferencias por parte de otros usuarios en el diseño. De cualquier forma, ahí tiene la posibilidad de seleccionar una u otra opción, según sus necesidades o preferencias.

La propiedad AutoEdit, del componente DataSource al que se asocia una tabla, fija si al desplazarnos por una tabla y pulsar una tecla de edición (por ejemplo una de letras), automáticamente se activa el modo de edición de la tabla y podremos escribir, modificar, borrar, etc., el contenido de los campos. Si usted desea impedir ediciones de la tabla, o que puedan producirse alteraciones accidentales, fije el valor de la propiedad a FALSE y cuando desee editar la tabla, llame al método Edit (por ejemplo con Table1.Edit;).

Si deseamos simplemente dar a leer el contenido de una tabla, para evitar que el usuario introduzca alteraciones de datos, se puede poner la tabla en sólo lectura, mediante la propiedad ReadOnly de la tabla puesta a TRUE. Como en todos los procesos que implican cambios en el modo de operar o en el contenido del componente Table, hemos de desactivarla, ejecutar el código de asignación de la propiedad y volver a activarla. Caso contrario, nos encontraremos con que

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información