Ver Mensaje Individual
  #8  
Antiguo 23-07-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Reputación: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Los generadores en Firebird/Interbase no tienen en cuenta las transacciones. Esto quiere decir que dos sesiones diferentes con dos transacciones diferentes iran obteniendo números de un generador que serán correlativos. Si alguna transacción falla (rollback, exception, desconexión, etc.) el número generado se pierde.

Por lo que comentas, una de las dos transacciones (la que obtuvo el generador 6) ha fallado o se ha hecho un rollback o se ha desconetado y no ha podido grabar sus datos y por eso no ves ese registro.

Lo que comentas de que una aplicación no ve los datos de la otra es por el tema de transaciones. Cada vez que abres la aplicación se abre una transacción. Esta ve todos los datos que se hayan confirmado (commit) anteriores a si misma.
Si quieres ver en una aplicación los datos de otra, deberás cada tanto hacer un commit de la transacción y cerrar y volver a abrir los DataSets.
El CommitRetaining, Graba los datos, pero no abre otra transacción, por lo que seguirás viendo datos viejos.

No se como es la estructura de tu aplicación, pero si la quieres volver multipuesto, deberás ver como actualizar las transacciones.
* Cada vez que abras el formulario.
* Cada vez que grabes un datos, hacer commit y posicionarte otra vez en el registro que correponda al contador (Generador) obtenido.
* Un botón que haga lo que menciono en la línea anterior.
Responder Con Cita