Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

the ROLLBACK TRANSACTION

Estas en el tema de the ROLLBACK TRANSACTION en el foro de SQL Server en Foros del Web. Hola a todos en el foro como es mi costumbre agradesco a todos los que se toman el tiempo de leer este mensaje, lo que ...
  #1 (permalink)  
Antiguo 16/02/2010, 16:46
 
Fecha de Ingreso: septiembre-2009
Mensajes: 66
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta the ROLLBACK TRANSACTION

Hola a todos en el foro como es mi costumbre agradesco a todos los que se toman el tiempo de leer este mensaje, lo que cuenta es la intención, y ahora si al punto que nos atañe:

Tengo un SP en SQL Server 2005 que cree, que lo que hace es actualizar ciertos datos en una base de datos, funcionaba bastante bien pero me vi en la necesidad de hacerle una modificación lo que tuve que hacer es crear un apuntador ya que tenia la necesidad de en un campo guardar muchos registros
es decir: en una tabla se guarda un numero de una factura y esa factura tiene mucho productos yo necesitaba que esas productos se guardaran en un solo registro y lo que hice es lo siguiente:


declare @contenedor nvarchar(1000)
declare @id_cliente nvarchar(14)
select @contenedor = space(1000)

set @contenedor =
''select @contenedor = @contenedor + ltrim(rtrim(num_contenedor))+ ', ', @id_cliente = b.id_cliente
from fpedimento_contenedor a, fpedimento b
where a.id_referencia = @id_trafico
and a.id_referencia = b.id_referencia
and a.id_rectificacion = b.id_rectificacion

set @contenedor = substring (@contenedor, 1, len(ltrim(@contenedor))-1)

SELECT @error = @error + @@error

IF (@contenedor is not null) or (@contenedor <> '')
BEGIN
IF (@id_cliente = '6P35' )
BEGIN
UPDATE bitacora
SET num_contenedor = @contenedor
WHERE id_trafico = @id_trafico

SELECT @error = @error + @@error
END
END

y utilizo el COMMIT TRANSACTION

este mismo SP lo mando ejecutar desde una aplicacion en PowerBuilder y al momento que intento actulizar los datos me manda el siguiente error:

Error al intentar actulizar la "aplicacion". the ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION

Si alguien pudiera ayudarme se los agradeceria muchisimo, saludos a todos!
  #2 (permalink)  
Antiguo 16/02/2010, 16:52
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: the ROLLBACK TRANSACTION

Claro, porque al igual que un BEGIN se cierra con END, un BEGIN TRAN, se cierra con un COMMIT TRAN o bien, con un ROLLBACK TRAN.

Ahora, dudo mucho que tu intencion de guardar todo en una variable funcione, si nos explicas que deseas hacer, tal vez demos un tip de como hacerlo
  #3 (permalink)  
Antiguo 16/02/2010, 17:04
 
Fecha de Ingreso: septiembre-2009
Mensajes: 66
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: the ROLLBACK TRANSACTION

gracias por tu respuesta iislas, si corro en un Query el proceso funciona bastante bien de hecho lo raro de todo esto es que al principio hice un proceso igual a este y funcionaba bien y en el mismo SP hice 3 procesos pero en este en particular me da problemas, lo que hago en este proceso es algo parecido a un apuntador y el resultado final es por ejemplo como te comentaba una factura tiene muchos productos algo asi:

factura 1
producto 1
producto 2
producto 3
y el resultado en el registro es producto1, producto 2, producto 3

y efectivamente se conosco mas o menos la estructura solo que no puse todo el SP y habro y cierro todo ese no es el problema, ya que si funcionaba bien
  #4 (permalink)  
Antiguo 16/02/2010, 17:56
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: the ROLLBACK TRANSACTION

Entonces revisa tus instrucciones de manejo de transacciones, BEGIN TRAN, COMMIT TRAN, ROLLBACK TRAN

Etiquetas: rollback, transacciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:31.