Ver Mensaje Individual
  #4  
Antiguo 04-10-2007
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
Supongo que lo más importante es el tema de transacciones.

Si abres una transacción y haces CommitRetaining de esta cada vez que quieres grabar, esto será como no cerrar la transacción nunca y se acumularán una sobre otra, hasta que se cierre la aplicación (o se haga el Commit final)

Lo que quiero decir es que deberás tratar de abrir y cerrar las transacciones siempre que puedas y usar el CommitRetaining lo menos posibe.

Como lema: La vida de la transacción debe ser lo más corta posible para que la base de datos o se degrade.

En mis aplicaciones yo conecto una sola vez al principio de la aplicación y hago una transacción por form. Esta transacción se abre y se cierra (Commit) con el form. Además, se van haciendo CommiRetaining para grabar los datos mientras el usuario entra o borra datos.

En procesos masivos, trato de hacer un commit por cada iteración. Por ejemplo contabilizar todas las facturas abiertas sería
Código:
While Facturas abiertas
   Transaction.StartTransaction
   Cerrar
   Transaction.Commit
end
Responder Con Cita