SQL Server - Ayuda Procedimiento

 
Vista:

Ayuda Procedimiento

Publicado por Marcela Castro (1 intervención) el 02/02/2012 19:48:03
Estoy creando un procedimiento para convercion de Kilometros a millas, de grados celcios a Grado Fahrenheit y de Kilometros a pies,Con control de errores y Uso de TRYy CATCH

Tengo el siguiente Scrip pero me da errores le agradesco su ayuda


Create proc sp_Calculo (@Datos Decimal,@Tipo Char (1))
As
BEGIN TRY
Declare @Resultado DECIMAL
Declare @Valor Varchar (10)
Set @Resultado=(Case
When @Tipo ='A' Then @Datos /0
When @Tipo ='B' Then @Datos /0
When @Tipo ='C' Then @Datos /0
ELSE ''
END)
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS 'NUMERO DE ERROR',
ERROR_SEVERITY() AS 'SEREVIDAD DE ERROR',
ERROR_STATE() AS 'ESTADO DEL ERROR',
ERROR_PROCEDURE() AS ' ',
ERROR_LINE() AS 'LINEA DE ERROR',
ERROR_MESSAGE() AS 'MENSAJE'
END CATCH
GO
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

Ayuda Procedimiento

Publicado por Pedro (80 intervenciones) el 04/02/2012 21:50:34
Siempre que sea A, B o C te va a dar error de division por cero, porque justamente lo estas haciendo,.

Fijate este que arregle

Alter proc sp_Calculo
(@Datos Decimal,@Tipo Char (1))
As
BEGIN TRY
Declare @Resultado DECIMAL
Declare @Valor Varchar (10)

Set @Resultado=(Case
When @Tipo ='A' Then @Datos /1
When @Tipo ='B' Then @Datos /2
When @Tipo ='C' Then @Datos /3
ELSE ''
END)
select @Resultado
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS 'NUMERO DE ERROR',
ERROR_SEVERITY() AS 'SEREVIDAD DE ERROR',
ERROR_STATE() AS 'ESTADO DEL ERROR',
ERROR_PROCEDURE() AS ' ',
ERROR_LINE() AS 'LINEA DE ERROR',
ERROR_MESSAGE() AS 'MENSAJE'
END CATCH
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