Un query que se cierra solo
Estoy usando Firebird con C++ 6. Tengo este código con dos TIBQuery:
Código:
Query->Close(); He probado, en vez de un bucle, a hacer un INSERT masivo:
y me da un error de violacion de claves (la tabla está indexada por padre y cuenta). ¿A alguien se le ocurre alguna idea? |
Creo que el problema es que cuando guardas un registro debes hacer post, ya que el commit lo cierra.
|
Cita:
El método Commit() almacena todas las operaciónes pendientes de la transacción actual y la cierra, por lo que deberías habrirla nuevamente si deseas continuar con las operaciones. Así mismo, el método Rollback(), cancela todas las operaciones pendientes de la transacción actual y la cierra. También deberías abrirla nuevamente si deseas continuar operando con ella. Existe la alternativa de usar CommitRetaining() y RollbackRetaining() que respectivamente almacenan y cancelan las operaciones, pero mantienen abierta la transacción actual. Saludos :) Edito: Como dijo Casimiro arriba. (no lo había visto... :o) |
Gracias a los dos. Ahora mismo lo pruebo.
|
Cita:
|
Cita:
Creo recordar que la sentencia es así:
|
No. El problema tiene que ser otro porque en ese mismo proceso de carga tengo otra tabla con la sintaxis que yo ponía:
y no me da error; además, el error es un problema de índices. No obstante ya está solucionado con el bucle. |
Entonces es que en la tabla origen tienes 2 registros con el mismo valor y en la de destino no están permitidos repetidos.
Problema en los datos. |
Efectivamente.
|
La franja horaria es GMT +2. Ahora son las 07:51:33. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi