Hola, ¿que tal? les comento mi problema:
Estoy desarrollando una aplicación de escritorio en VB6 y SQL Server
2000.
Tengo 2 procedimientos almacenados. Desde el SP_Uno inicio una
transacción, hago un INSERT y controlo si la operación fue exitosa o
no. Hasta aquí todo claro.
Luego realizo un SELECT, primera duda, ¿es necesario controlar si esta
ultima fue exitosa o no para tomar medidas?
Luego llamo a SP_Dos, el cual realiza un simple UPDATE. Inmediatamente
después controlo si la ejecución de este SP_Dos fue correcta. Aquí
mi otra duda. Si el SP_Dos falla, ¿@@Error contendrá el valor del
error? ¿SP_Dos debe retornar un valor a SP_Uno que indique cual fue el
error que se produzco?
Agradezco sus comentarios.
Ezequiel.
-
SP_Dos
UPDATE
SP_Uno
BEGIN TRAN
INSERT ...
IF @@ERROR <> 0
BEGIN
RAISERROR 'Error' ...
ROLLBACK TRAN
END
SELECT * ...
EXEC SP_Dos
IF @@ERROR <> 0
BEGIN
RAISERROR 'Error' ...
ROLLBACK TRAN
END
COMMIT TRAN
Leer las respuestas