Inexplicable transaccion que se queda a medias

27/08/2004 - 01:03 por Dario | Informe spam
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

#1 Emilio Boucau \(en casa\)
27/08/2004 - 01:11 | Informe spam
Darío,

yo tampoco entiendo como es que no termina la transacción pero el hecho que
menciones que desde el Query Analyzer o desde VB 6.0 este proceso ande ok me
lleva a descartar que sea un problema de SQL Server. Te recomiendo que
contactes al soporte de Genexus.


Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com

Preguntas similares