Ver Mensaje Individual
  #5  
Antiguo 29-01-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Reputación: 20
Ivanzinho Va por buen camino
Hola duilioisola, gracias por tu atención, pero creo que no has entendido bien mi consulta, el último bloque de código, al que te refieres, es una simple prueba que hice para ver que pasaba si hacía la inserción en una transacción distinta.

Lo que hago en AbrirTablas es simplemente eso, reabrir los DataSet necesarios tras la finalización de una transacción. Y lo que hago en el último fragmento de código es lo siguiente.

Código:
{Abro las transacciones}
T.StarTransaction //DmDatos.IBTrFac ya está abierta

{Inserto los valores}
T.InsertarCampos //El select lo tengo realizado con anterioridad

{Finalizo transacciones}
T.Commit
dmDatos.IBTrFac.Rollback //No se realizó ningun cambio en esta transacción, hago Rollback para finalizarla, daría lo mismo hacer commit;

{Reabro los DataSet para ver los últimos registros insertados}
AbrirTablas
Pero repito, esto es sólo una prueba que realice con posterioridad, el problema con IBX está que si se borraron los datos de la tabla desde una transacción externa antes de insertar un registro tengo que terminar la transacción activa e iniciar una nueva, ya que sino me inserta un registro con id = ultimo id del data set + 1. Lo que me llama la atención es que la clave se calcula en un procedimiento almacenado en la base de datos.

¿Puede tener algo que ver con las propiedades de la transacción y que esté leyendo algo que fué modificado con anterioridad?, pero en caso hacer un insert desde otro lado, ahí si me actualiza bien la clave.

Lo tengo solucionado finalizando y volviendo a inciar la transacción antes del insert, pero lo que me extraña es que con insert si funciona bien, por lo que me gustaría saber a que era debido este comportamiento.

Un saúdo y gracias por la ayuda.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)

Última edición por Ivanzinho fecha: 29-01-2008 a las 16:09:10.
Responder Con Cita