Es una herramienta incluida en los entornos de desarrollo de Borland/Inprise (Delphi, C++Builder y JBuilder) que permite crear, visualizar, consultar y ordenar tablas almacenadas en distintos formatos (como Paradox o dBase).
Visualizar el contenido de las tablas BCDEMOS:holdings.dbf (en formato dBase) y BCDEMOS:vendors.db (en formato Paradox).
Crear una tabla Paradox llamada AGENDA.DB con los siguientes campos:
Es la utilidad que permite gestionar los alias del motor de bases de datos de Borland.
Creamos un nuevo alias de tipo STANDARD (el usado para tablas Paradox y dBase) y lo denominamos AGENDA. En su propiedad PATH ponemos la ruta al directorio donde hemos almacenado anteriormente la tabla AGENDA.DB.
NOTA: La creación de alias la prodríamos haber realizado desde la opción Alias Manager del Database Desktop e incluso desde el código de nuestra aplicación.
Creamos un proyecto llamado Agenda
y su formulario principal lo guardamos con el nombre FormAgenda
.
Creamos un módulo de datos que contendrá un componente TTable denominado TableAgenda con su TDataSource asociado (dsAgenda). Tenemos que establecer las propiedades DatabaseName y TableName del componente TTable, así como la propiedad DataSet del TDataSource. Al módulo de datos lo llamamos dmAgenda y la unidad correspondiente la guardamos como DataAgenda.
Con el "Fields Editor" del menú contextual de TableAgenda creamos los cinco componentes TField correspondientes a las cinco columnas de nuestra tabla.
Añadimos al formulario principal los componentes necesarios para poder manejar nuestra agenda. Para que los componentes del módulo de datos sean visibles desde el formulario hemos de añadir el #include correspondiente en el fichero .cpp del formulario. En la propiedad DataSource de todos los componentes data-aware seleccionaremos dmAgenda->dsAgenda
.
Hemos de llamar al método Open de nuestra tabla cuando se produce el evento OnActivate del formulario. De la misma forma interceptamos el evento OnDeactivate del formulario e invocamos al método Close de la tabla. Esto es equivalente a mantener la propiedad Active del conjunto de datos a true (aunque es preferible porque no tiene sentido mantener conexiones abiertas cuando no se están utilizando).
Para introducir fotos en nuestra base de datos podemos utilizar el componente OpenPictureDialog, un botón que lo llame y el método LoadFromFile de TGraphicField. También podemos utilizar el portapapeles de Windows para poner la imagen.
NOTA: El conjunto de datos debe estar en modo edición para poder establecer el valor de la imagen.
Para evitar que los mensajes asociados al TDBNavigator aparezcan en inglés debemos interceptar el evento BeforeAction de este componente. Así mismo, podemos traducir las pistas asociadas a los distintos botones del TDBNavigator (propiedad Hints) y permitir su visualización (ShowHints).
Sería aconsejable establecer las validaciones oportunas a nivel de campos para que se sólo se puedan introducir direcciones de correo electrónico válidas. Así mismo, deberíamos tratar mejor la introducción de fechas (para lo cual lo ideal es crear un componente derivado de TDateTimePicker
).
Para permitir búsquedas en nuestro conjunto de datos podemos utilizar filtros
NOTA: Se podría crear un cuadro de diálogo genérico que nos permita realizar búsquedas sobre cualquier conjunto de datos. Para ello, nuestro diálogoTDBDlgSearch
debería tener una propiedadDataSet
(definida utilizando la palabra reservada__property
) así como métodos que permitan realizar la búsqueda (vg:find
,findNext
yfindPrior
), los cuales devolverán un valor booleano según la búsqueda se haya realizado con éxito o no.
También podríamos permitir la impresión de fichas con los datos de nuestra tabla. Para ello tendríamos que utilizar un TQuickReport
o acceder directamente al canvas de la impresora (TPrinter
).
Finalmente, una vez que tengamos nuestra aplicación terminada, podríamos distribuirla generando un programa de instalación con, por ejemplo, el InstallShield Express for C++Builder...