Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Cliente V.S. Cliente (https://www.clubdelphi.com/foros/showthread.php?t=14080)

AGAG4 09-09-2004 03:06:24

Cliente V.S. Cliente
 
Estoy usando componentes IBX con FireBird 1.5.

Tengo un problema, lo que pasa es que estoy haciendo pruebas en un Maestro-Detalle(Factura), Cliente-Servidor, ahora, cuando acceso a la captura de Facturas en dos Terminales, capturó Folios distintos en las dos, en el evento OnEnter del dbGrid(Detalle) guardo la llave primaria del Maestro (Almacen+Serie+Folio), en un Cliente estoy capturando Productos en la Factura y en el otro, al entrar al dbGrid activo el evento OnEnter en el cual tengo el siguiente código:

Maestro.Edit;
Maestro.Almacen:=1;
Maestro.Serie:='FM';
Maestro.Folio:=edFolio.text;
Maestro.Post;
**Nota:
Llave primaria del detalle> Almacen+Serie+Folio+Indice

Hago esto porque en el dbgrid cada vez que voy agregando un nuevo registro, le asigno al detalle la Serie y el Folio del Maestro asignandole el consecutivo del campo "Indice" del Detalle, (en la Base de Datos tengo la llave foranea del detalle Almacen+Serie+Folio que hacen referencia al Maestro)

Al compilarlos por partes, y al pasar por la ultima instrucción<Maestro.Post;>
se me queda paralizada la aplicación, y vuelve a funcionar hasta que en el otro cliente acepto la transacción, en donde estoy mal???? espero haberme explicado bien .... si no me explique bien por favor diganmelo...Gracias.

Neftali [Germán.Estévez] 09-09-2004 09:28:25

Cita:

Empezado por AGAG4
Al compilarlos por partes, y al pasar por la ultima instrucción<Maestro.Post;>
se me queda paralizada la aplicación, y vuelve a funcionar hasta que en el otro cliente acepto la transacción, en donde estoy mal????

¿Cuando abres (begin) y cierras la transaccion (commit)?

Te lo digo porque el comportamiento que explicas de transacciones es el correcto; la segunda se debe esperar hasta que la otra acabe, lo que pasa que una premisa básica de las transacciones es que deben durar un tiempo mínimo (ínfimo, y con ésto hablo del tiempo que tardan en ejecutarse unas ciantas instrucciones -décimas de segundo tal vez-) por eso las esperas son (o deberían ser inperceptibles).

De ahí que te pregunte cuando la inicas y la acabas y cuanto tiempo hay entre esos dos puntos.

AGAG4 09-09-2004 19:28:39

oki
 
Muchas Gracias por sus comentarios, pero creo que el problema es en el Post, como usted me dice, voy hacer pruebas con las transacciones, algo debo de tener mal... Gracias....


La franja horaria es GMT +2. Ahora son las 13:14:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi