Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/08/2008, 06:50
Avatar de alterWM
alterWM
 
Fecha de Ingreso: diciembre-2005
Mensajes: 8
Antigüedad: 18 años, 5 meses
Puntos: 0
Exclamación Respuesta: Error transaccion en sql srver 2000

Hola Matanga! muchas gracias por tu respuesta!

Relize una estructura para la transaccion como la siguiente:

Código:
DECLARE @Error int,
	@id_familia int,
	@codigo int,
	@nombre nvarchar (75),
	@marca nvarchar(75),
	@detalles nvarchar(75),
	@precio int,
	@pack int,
	@fotoarticulo nvarchar (75),
	@modelo nvarchar (50)
--Declaro una variable que utilizaro para almacenar un posible código de error
set @id_familia = 3
set @codigo = 146
set @nombre = 'jm'
set @marca = 'jm'
set @detalles = 'jm'
set @precio = 12
set @pack = 1
set @fotoarticulo = 'jpg'
set @modelo = 'jm'
SET @Error=@@ERROR
BEGIN TRAN
--Inicio la transacción
INSERT INTO articulos
		(id_familia, codigo, nombre, marca, detalles, precio, pack, fotoarticulo, modelo )
		VALUES
	(@id_familia, @codigo, @nombre, @marca, @detalles, @precio, @pack, @fotoarticulo, @modelo )
--Ejecuto la transaccion

--Si ocurre un error almaceno su código en @Error
--y salteo al código que deshace la transacción.

IF (@Error<>0) GOTO TratarError


COMMIT TRAN

TratarError:
--Si ocurrio un error llegamos hasta aca
If @@Error<>0
	BEGIN
	PRINT 'Ha ecorrido un ERROR. Abortamos la transacción'
--Seshacemos la transacción
	ROLLBACK TRAN
	END
y aparentemente funciona, digo aparente mente, por que si ingreso valores correctos, genera el tipico:
Código:
(1 row(s) affected)
Pero si al ingresar un dato no valisdo, ejemplo una letra "A" en un campo de valor int, aparece lo siguiente:

Código:
Server: Msg 207, Level 16, State 3, Line 12
Invalid column name 'A'.
DEbo hacerlo en SQL 2000, ya que esta todo el desarrollo echo en esta tecnologia, lo tendre en cuenta para el proximo proyeto, Por favor, necesito su ayuda!