[Lazarus-es] apertura de tablas
JoshyFun
joshyfun en gmail.com
Mar Jun 16 14:08:49 CEST 2009
Hello Paola,
Monday, June 15, 2009, 11:28:23 PM, you wrote:
PB> Se me ha presentado otra situación, y me gustaría
PB> ver cómo lo resuelven Uds, ya que son mucho más
PB> experimentados que yo en este lenguaje..
PB> Estoy usando los componentes Zeos.
PB> En un datamodule coloqué el zconnection.
PB> En cada form pongo los componentes ttables o tquerys que necesito.
[...]
PB> donde:
PB> function frmBuscaCliente.GetIDCliente(): Integer;
PB> begin
PB> Result:=Dataset.FieldByName('CLIENTID').asInteger;
PB> end;
PB> en este caso, no podía abrir la tabla en la
PB> busqueda y cerrarla al salir, porque salta error
PB> al obtener el IDCliente porque obvio que cuando
PB> llegó allí, la tabla ya se cerró..
PB> Pero a su vez, el form de busqueda puede abrirse
PB> independientemente de si fue llamado desde otro
PB> lado, por ej, si se necesita buscar un dato cualquiera
Empezando por que yo con bases de datos para trabajos empresariales a
penas he trabajado (uso bases de datos para almacenamientos
estructurados programáticos), diría que hay que huir de los TTable si
se usa una base de datos relacional; y digo huir para los casos
generales ya que hay situaciones en las que un TTable es lo más
práctico, pero la verdad no veo muchas que no sean el alta o la baja
masiva de registros sin intervención del usuario.
En el ejemplo de la búsqueda de clientes, búsqueda de artículos y
cosas similares yo crearía un modulo de datos con la conexión a la
base de datos (o directamente en cada form) y un TZQuery que realize
las búsqueda, bien por partes de campos, o listando en un dbgrid o
algo así.
De este modo el formulario funciona de modo autónomo, y un servidor de
bases de datos no va a tener problema por que cada cliente mantenga
ocasionalmente 4,5...n conexiones simultaneas, y sólo has de mantener
ciertas precauciones de integridad de datos cuando trabajes con
múltiples copias del programa a la vez, ya que el código de cliente
que has obtenido en la búsqueda puede no existir ya cuando vayas a
usarlo (si alguien lo ha eliminado).
--
Best regards,
JoshyFun
More information about the Lazarus-es
mailing list