FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Commit no se ejecuta
Antes que nada advertir que he estado buscando por el foro pero el único caso que he visto similar al mio es usan componentes FireDAC que yo no uso.
En una aplicación con BCB6 estoy migrando una base de datos Access a otra Firebird. En principio no me está dando demasiados problemas pero al cargar una de las tablas con definiciones FOREIGN KEY sobre otras de la BB.DD. me están surgiendo problemas. Tengo este código apra insertar registros en una tabla FB: Código PHP:
Código PHP:
|
#2
|
||||
|
||||
Bueno, no pones el código completo de esa parte y no podemos saber dónde inicias la transacción y demás. Se supone que en la consulta no estarás obteniendo los datos de otra transacción que, obviamente, no ve a la anterior.
|
#3
|
||||
|
||||
¡Uf! ¿Todo el código? Luego no quiero protestas
Código PHP:
Es la primera vez que me tengo que enfrentar a un BB.DD. Acces, que encima ni he diseñado yo ni tengo documentación alguna sobre su estructura. Los querys sobre Access (qGesElec1 y qGesElec2) los estoy montando así porque si tarto de hacerlo con parámetros no sé como se hace; pensaba que era como en el caso de los TIBQuery. El bucle ese for (nItem = 1; nItem < 8; nItem ++) es porque en dos tablas Access todos los registros están definidos como Ele_Part1, Ele_Part62, etc. y Vot_P1, Vot_P2, etc. Encuentro absurdo crear registros sin información sin razón alguna y los estoy cambiando de forma. Última edición por Angel.Matilla fecha: 23-05-2018 a las 10:37:20. Razón: Faltan comentarios |
#4
|
||||
|
||||
Me refería a todo el código implicado en la transacción
Ahí veo que haces commit, pero ¿cuándo inicias la transacción en esos casos? ¿Cómo tienes definido el TIBTransaction? |
#5
|
||||
|
||||
Vale, te había entendido mal. Lo cierto es que, y me acabo de dar cuenta al leer este mensaje tuyo, que la transacción la tengo definida en el formulario principal... ¡pero luego no hago nada con ella! Quiero decir: ni la abro, ni la verifico, ni nada de nada, ¡y sin embargo funciona bien! Los registros se graban, se actualizan, se borran. No lo entiendo.
En la transacción asociada al query que hace el INSERT sólo tengo puesto: Cita:
|
#6
|
||||
|
||||
Cita:
Código PHP:
|
#7
|
||||
|
||||
Elimina esos commit que haces después de los execsql
Al componente TIBTransaction dale estos valores: Código:
write nowait rec_version read_committed Y por supuesto, no olvides hacer un commit (no un commitretaining) por ejemplo cuando vuelves a la pantalla principal. Ya depende de cómo tengas estructurado tu programa. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Commit no se ejecuta hasta que cierro la aplicación... | MAXIUM | Firebird e Interbase | 3 | 24-02-2018 15:44:20 |
con breakpoint ejecuta y sin el no lo ejecuta. | pacuuy | Varios | 1 | 16-12-2007 13:41:43 |
Commit - CommitRetaining | Luzma | Firebird e Interbase | 3 | 27-06-2006 01:58:58 |
Commit | micayael | PHP | 4 | 21-09-2005 19:34:50 |
Commit | Loviedo | Firebird e Interbase | 7 | 29-07-2005 14:36:10 |
|