SQL Server - AYUDA, NO EXISTE ROLLBACK!!!!

 
Vista:

AYUDA, NO EXISTE ROLLBACK!!!!

Publicado por Hubert (18 intervenciones) el 04/12/2008 18:00:46
Buenas grupo.
Espero no se cansen de leer, agradeceré sus comnentarios, es sobre un SQL SERVER 2000.

En una tabla con nombre “TRANSFER”, uno de sus campos es de tipo TEXT, en este campo tengo almacenado instrucciones TSQL aprox. 80,000 registros.

Luego estos 80.000 registros son leídos por un actives que lo que hace es ejecutarlos uno en uno en otra BD CENTRAL que posee todos las tablas y campos que están en cada registro de la tabla de arriba.

Caso.
La ejecución de los registros se realiza de uno en uno en la BD CENTRAL, incluso SE PUEDE VER que los registros aumentan en las tablas y campos.

PERO, por alguna razón y no se en que parte del final de registros:
LOS REGISTROS QUE HACE UN RATO LOS ESTABA VIENDO “DESAPARECEN”, como si existiera un ROLLBACK (no existe tal rollback)

Este es un ejemplo solo de un registro que es ejecutado con una conexión ADO desde mi aplicación.

OEX es una conexión.
OEX.EXECUTE(“BEGIN TRAN
UPDATE numerador SET valor = 6 WHERE cagencia = 43 and keyname = 'Movidiario'
UPDATE numticket SET numero = 3, harribo = '20080421 12:10:07' WHERE cagencia = 43 and ctick = '01'
INSERT INTO MoviDiario(cagencia, noperacion, cpos, numero, harribo, hllamada, hatencion, hfinal, latencion, ctick, prefijo, cptoaten, cdisplay1,
cdisplay2, cdisplay3, cdisplay4, mireg, ctarjeta, ccajero, casesor, cliente, latenciond, tventanilla, tventanillau, cfuncion, login, cticko)
VALUES (43, 6, '01', 3, '20080421 12:10:07', '20080421 12:10:07', '20080421 12:10:07', '20080421 12:10:07', 0, '01', 'C ', 0, 1,
0, 0, 0, '200804214380794', '', 0, '0 ', '-- CLIENTE --', 0, 0, 0, 0, '*!*', '01')
INSERT INTO MoviDiarioH(cagencia, noperacion, cpos, numero, harribo, hllamada, hatencion, hfinal, latencion, ctick, prefijo, cptoaten, cdisplay1,
cdisplay2, cdisplay3, cdisplay4, mireg, ctarjeta, ccajero, casesor, cliente, latenciond, tventanilla, tventanillau, cfuncion, login, cticko)
VALUES (43, 6, '01', 3, '20080421 12:10:07', '20080421 12:10:07', '20080421 12:10:07', '20080421 12:10:07', 0, '01', 'C ', 0, 1,
0, 0, 0, '200804214380794', '', 0, '0 ', '-- CLIENTE --', 0, 0, 0, 0, '*!*', '01')
COMMIT”)

Lo curioso es que solo sucede esto con UNA agencia de 100 que si se ejecutan correctamente (hice la prueba varias veces con esta misma agencia pero los registros aparecen y despues ya no estan).

Alguna idea de que puede estar pasando….

Saludos navideños...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDA, NO EXISTE ROLLBACK!!!!

Publicado por Isaias (3308 intervenciones) el 04/12/2008 18:29:37
Si no existe un ROLLBACK TRAN, ¿Para que entonces hacer mencion de transacciones explicitas con BEGIN TRAN y COMMIT TRAN?, eliminalas, hagas mencion de esta instruccion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA, NO EXISTE ROLLBACK!!!!

Publicado por Hubert  (18 intervenciones) el 04/12/2008 19:41:59
Gracias cor contestar Isaias,

Como es entonces que en el tratamiendo de las otras agencias no suceda ese error?. (lo que sucede es que eso sucede en un cliente y esta pidiendo una sustento)

Me indicaron que hace tiempo paso algo similar y lo que hicieron fue retirar todo registro del BD CENTRAL y volver a ajecutarse, pasando correctamente.

Voy a probar eliminando esas instrucciones.

Pregunta:
El que exista o deje de existir BEGIN TRAN.. y ..COMMIT, afecta en algo la velocidad de actualización de la BD CENTRAL?.

Saludos Navideños
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA, NO EXISTE ROLLBACK!!!!

Publicado por Isaias (3308 intervenciones) el 05/12/2008 01:42:37
Un BEGIN TRAN, guardara cada transaccion en el LOG DE TRANSACCIONES, seria cuestion de probar sin dichas intrucciones y medir el tiempo de respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA, NO EXISTE ROLLBACK!!!!

Publicado por gcuatem (5 intervenciones) el 05/02/2009 11:26:39
Hola, mira lo que te esta pasando es que una de tus instrucciones esta retornando un error y como estan todas en medio del begin transaction automaticamente se dispara el rollback aun que no lo tengas fisicamente declarado, ahora la tarea dificil es encontrar cual de todas tus instrucciones esta generando el problema, una forma de hacerlo seria identificar cada instruccion con un codigo de error asi sabrias en que parte esta tronando y controlar tu rollback como una excepcion, por ejemplo

insert into.............
if @@error!=0
begin
rollback
return 10
end

delete from.........
if @@error!=0
begin
rollback
return 20
end

de esta forma si de salid recibes un 10 sabrias exactamente donde se interrumpio tu transaccion,

Otra forma seria ir fragmentando tus instrcciones e irlas ejecutando por partes hasta que llegues a donde truena

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar