En este capitulo escribiremos
una aplicación pequeña de base de datos. Como necesitamos asegurar que todos
tengamos los mismos datos, comenzaremos por utilizar los datos que vienen con
Delphi, en el alias DbDemos.
|
Nota: En
este ejemplo, aunque estamos usando el alias DbDemos (que es un
directorio con tablas de dBase), estoamos programando como si
estuviéramos desarrollando para un servidor SQL (dBase, Paradox,
etc). Con esto, nuestra intención es convencerlo de que: 1. Usted
puede (y en nuestra opinión debería) programar en SQL local para
hacer más fácil la migración posterior a bases de datos SQL, y
2. Si usted comprende como funciona Delphi en programación con
un TQuery, la programación usando un TTable es sencilla y trivial.
Además, usted estará listo más
rápido para programación en SQL, y un desarrollador de Cliente/Servidor es
mejor pagado que uno de "tablas". El saber y entender SQL es, hoy
por hoy, una de las mayores ventajas para un desarrollador, ya que cualquier
paquete de base de datos entiende al menos una "especie" de SQL.
Si usted quiere usar una
versión poderosa de SQL para saber cómo es programar para ella, Delphi
Professional y Client/Server cuentan con una versión de desarrollo de
Interbase. Pero antes de desarrollar sobre Interbase, asegúrese de entender
el contrato de licencia, donde Interbase se cobra "por asiento",
como Oracle, Ms SQL Server o Progress.
|
Delphi utiliza una librería
llamada BDE (Borland Database Engine) para su acceso a bases de datos. El
acceso de datos en Delphi es muy diferente, pero análogo, al acceso de datos en
lenguajes como Clipper, Foxpro y dBase. En estos lenguajes, usted tiene
"áreas" de trabajo. Dentro de esas áreas usted puede tener abierta
una tabla, y le puede decir a esa tabla que vaya al principio, al final, o
brinque o retroceda. Bueno, en principio, en Delphi puede usted hacer lo mismo:
|
En Clipper
(área)
|
En Delphi (dataset)
|
|
GO TOP
|
Dataset.First;
|
|
GO BOTTOM
|
Dataset.Last;
|
|
Skip
|
Dataset.Next;
|
|
Skip -1
|
Dataset.Prior;
|
En Delphi usted puede tener un
sinnúmero de estas "áreas", pero como en Delphi todo es un objeto,
obviamente tienen su nombre. Las clases que representan sets de datos
navegables (datasets) son llamadas "TDataset".
|
Nota: Nos referimos a "sets de datos navegables"
en lugar de especificar tablas o áreas de trabajo. ¿Porqué es
esto? Un set de datos navegable en Delphi puede representar virtualmente
cualquier cosa. Delphi tiene una clase llamada TCustomDataset,
que implementa los conceptos básicos de la navegación de datos
(First, Next, Last, etc). Bajo esta clase, customBDEDataset está
implementado. Esto es un set de datos abstracto que utiliza el
BDE. Una vez implementado BDEDataset, todos los sets de datos
(TQuery, TTable) están implementados bajo el mismo.
¿Porqué tanta complicación?
¿Porqué no simplemente hacer acceso de datos directamente? Delphi tiene como
concepto básico la implementación de clases y programación por objetos. El
uso de estas clases intermedias garantiza que usted pueda hacer acceso a
datos sin utilizar el BDE, por ejemplo (utilizando CustomDataset en vez de
CustomBDEDataset). De hecho, usted puede manejar el acceso de datos de una
manera totalmente diferente mientras Delphi cree que está utilizando los
mismos datasets. El cambio en su programa se vuelve mínimo.
|
|