Ver Mensaje Individual
  #2  
Antiguo 16-12-2003
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Reputación: 21
Voutarks Va por buen camino
En primer lugar y aunque dices que sabes la teoría, ¿te has leido el magnífico manual sobre las transacciones de nuestro amigo kinobi? Es un .pdf que pueden encontrar en este enlace (pinchar aqui)

Sabrás que las transacciones se manejan desde IBX con el componente IbTransaction. No hay que saber demasiado, solo un par de cosas.

Todos los componentes de acceso a datos (query's, sql's, etc) tendrás que asociarlos a una o varias transacciones, las cuales irán asociadas a una o varias bases de datos. Las transacciones, desde un punto de vista lógico, yo las veo como agrupaciones de instrucciones en bloque, asi qee en un programa concreto según como sea y cómo va a funcionar se ve, más o menos, como debe ser esta distribución, si a tal transacción se le asocia este y/o este otro conponente de datos, etc. Como regla general mía te puedo decir que el número de transacciones que hay en la aplicación suele coincidir con el número de operaciones concurrentes de datos que se pueden llegar a relizar en la aplicación, así que en general cualquier aplicación tendrá como mínimo dos, una de lectura y otra de escritura-modificación-borrado.

Pudes dejar que las transacciones se abran solas (es la opción por defecto) o que se cierren solas (no es la opción por defecto y no es nada recomendable, opino yo). Yo personalmente abro explícitamente todas las transacciones, asi que pongo la propiedad AllowAutoStart de la transaccion a false, pero si se deja que se abran solas tampoco supone practicamente ningun riesgo.

Tambien debes saber cuando tienes que confirmar o rechazar los cambios: para confirmar está el método commit y para rechazar el rollback, ambos métodos cierran la transacción, es decir, la terminan. También están el commitretaining y rollbackretaining, que confirman o rechazan pero manteniendo el "contexto" de la transacción, es decir que la transacción sique abierta y los recursos del servidor siguen ocupados por ella. A mi personalmente no me gusta este enfoque y no procuro no hacer nunca ..retaining.

Con eso para empezar está bien. Te recomiendo leer el manual de kinobi una vez más.
__________________
Emilio J. Curbelo
Responder Con Cita