Atrapar Error de SQL Server

07/07/2004 - 10:32 por Serafin Salazar | Informe spam
Hola, tengo un procedimiento que elimina registros de una tabla. Esta tabla
es referenciada por otras, lo que desea es que si se esta violando alguna
regla de integridad referencial como foreign key, el procedimiento me
devuelva el codigo de error, de tal manera que en una pagina asp pueda, de
acuerdo al error retornado, mostrar un mensaje amigable al usuario.
Lo que tengo es lo siguiente:


create proc proc_Delete
as
begin
set nocount on
declare @mierror integer
select @mierror=0
begin tran a
delete from caf_warnings_state where ws_key2
set @mierror=@@error
if @mierror<>0
begin
rollback tran a
goto salir
end
commit tran a
salir:
return (@mierror)
end

y lo estoy invocando asi:

declare @salida int
exec @salida =proc_Delete
select @salida

pero no me devuelve unicamente el codigo de error, y obtengo problemas desde
la pagina con todo ese texto extra...alguna ayuda por favor.

Mil gracias!
 

Leer las respuestas

#1 Serafin Salazar
07/07/2004 - 14:31 | Informe spam
Hola Javier, si estoy usando ADO desde ASP. Pero me genera un error al
tratar de Ejecutar el procedimiento almacenado de esta forma:


sql=" declare @salida int" & _ " exec @salida =proc_Delete" & _ " select
@salida " set rs=conn.execute(sql) response.Write rs(0)

Ni siquiera ejecuta el sql, me muestra el mismo error de llave foranea

Microsoft OLE DB Provider for SQL Server (0x80040E2F)
Instrucción DELETE en conflicto con la restricción COLUMN REFERENCE
'fkprueba'. El conflicto ha aparecido en la base de datos 'DEV02BVS', tabla
'caf_warnings_stage', column 'wst_ws_key'.
/dev02bvs/pruebapalm.asp, line 37



"Javier Loria" escribió en el mensaje
news:%
Mostrar la cita
error
Mostrar la cita
(como
Mostrar la cita

Preguntas similares