Hola
Por favor una luz..
Desarrollamos con una herramienta Case que se llama
genexus... en esta herramienta estamos ejecutando un
procedimiento almacenado SQL que a pesar de que tiene
explicita una transaccion, al hacer seguimiento en el
profiler de SQL se ve como lo ejecuta a medias
hicimos un procedimiento de prueba de la siguiente forma:
Create procedimientos as
declare @a int
set @a = 1
Begin tran proceso
While @a <= 10000
Begin
insert tablaborrar
select @a, getdate ()
set @a = @a + 1
End
Commit tran proceso
Si se ejecuta directamente en el Query Analyzer
efectivamente inserta los 10000 registros
Pero si se ejecuta desde el Genexus (Generando Codigo VB)
ejecuta entre 150 y 300 registros.
No entiendo como hace una transaccion a medias???
Al hacer un trace a lo que ejecuta el genexus se ven todas
las instrucciones de insert mas o menos unas 180 veces
y al final se ve lo siguientes:
IF @@TRANCOUNT > 0
COMMIT TRAN
Al revisar encuentro que el aplicativo creado desde la
herramienta case generó 180 registros
No entiendo como puede ser que el SQL no termine su
transaccion...no me genera error ni veo en el trace algun
proceso de rollback...esto nunca me habia pasado con SQL
desarrollando por ejemplo directamente desde VB 6.0
No se si habrá algún parametro que no esté contemplando.
Gracias a todos
Leer las respuestas