FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Transaction is active
Hola foro:
He realizado con éxito una migración de base de datos de InterBase a Firebird. Ahora estoy tratando de no utilizar más BDE para la conexión, Para conectarme decidí utilizar TIBDatabase (lo nombré "DBConexion"). y un TIBTransaction enlazado (lo nombré "Administracion"). A continuación transcribo el código que utilizo "hasta ahora" para modificar datos utilizando transacciones.
en la línea D_Datos.Administracion.StartTransaction, da el error "Transaction is active" Les recuerdo que "Administracion" es el componente TIBTransaction. Bueno. Desde ya gracias por su atención. |
#2
|
||||
|
||||
Podrias poner
Espero te sea util. Saludos |
#3
|
||||
|
||||
Sí.
Gracias Caminante.
Funciona bien pero no entiendo cual es la razón, ya que funciona igual que si no coloo el .StartTransaction;. ¿? o sea, esto tambien funciona:
|
#4
|
||||
|
||||
Porque ya tienes abierta una transacción desde que conectas a la BD
|
#5
|
||||
|
||||
Resuelto
Gracias Casimiro y Caminante, aclaro como fue:
Si estoy conectado con BDE esto funciona bien
Si estoy conectado con TIBDatabase esto No funciona bien
Por lo tanto la solución propuesta por Caminante es correcta. Eso es todo. Saludos |
#6
|
||||
|
||||
Hola Carmelo Cash.
En realidad puede funcionar bién o no dependiendo de el valor que tenga asignada la propiedad AutoStopAction del TIBTransaction. Aquella puede tomar los valores: saCommit, saCommitRetaining, saNone, saRollback y saRollbackRetaining. Si la propiedad está en: saNone, saCommitRetaining o saRollbackRetaining la transacción no es finalizada por lo que no es necesario usar el método StartTransaction para volver a ejecutar el código. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
No funcionó
Hola Eficsa
Probé tu sugerencia de modifica la propiedad AutoStopAction del TIBTransaction, pero si no coloco
Sigue apareciendo el error.. |
#8
|
||||
|
||||
Hola Carmelo Cash.
No fuí claro en el mensaje anterior, no quise sugerir que no usaras lo que te propuso Caminante, eso es correctísimo ya que previene cualquier posibilidad de entrar al código con el estado Active en False. Es decir si el IBTransaction esta inactivo es necesario cambiar su estado para operar qualquier TDataSet vinculado a él. Lo que quise mencionar es el comportamiento del TIBTransaction cuando no se explicita la acción mediante los métodos: Commit, CommitRetaining, Rollback o RollbackRetaining. En ese caso el TIBTransaction usará la acción definida en la propiedad AutoStopAction cuando se cierre el último TDataSet asociado a esa transacción. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#9
|
||||
|
||||
Ok.
Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
FIBPlus error :Transaction is active | El_Raso | Conexión con bases de datos | 1 | 13-02-2009 12:11:21 |
Como cancelar una transaccion? Active Transaction = 0??? | JuanErasmo | Firebird e Interbase | 5 | 07-08-2007 21:40:46 |
Error: Transaction is active | Tauro78 | Firebird e Interbase | 1 | 09-02-2007 11:38:38 |
Error: "SQLConnection: there is no active transaction" | jmlifi | Conexión con bases de datos | 3 | 26-06-2006 18:11:23 |
Transaction active | cmgenny | Firebird e Interbase | 2 | 31-05-2004 16:38:16 |
|