Este día realice unos cuantos “Stored Procedure” los cuales
no eran muy complejos, uno de los SP lo complete y el otro lo deje
incompleto, el “Stored procedure” que
complete fue el de insertar una nueva cuenta de ahorro la cual no fue nada
complicada y lo único que puede hacer que se caiga el SP a nivel de sus parámetros,
sería que le ingresaran por parámetro un número de identificación de un cliente
que no existe en la base de datos, a continuación el código:
CREATE PROCEDURE [dbo].[CASP_InsertarCuentaAhorro]
-- Add the parameters for the stored procedure here
@Numero_Cuenta
nvarchar(50),
@Saldo
money,
@tipoCuentaAhorro nvarchar(50),
@Identificacion_Usuario nvarchar(50),
@FechaCreacion date
AS
BEGIN
-- SET NOCOUNT ON added to
prevent extra result sets from
-- interfering with SELECT
statements.
SET NOCOUNT ON;
-- Insert statements for
procedure here
BEGIN TRY
-- Se verifica que los parametros no vengan nulos
IF @Numero_Cuenta = NULL
BEGIN
return -100001
END
IF @Saldo = NULL
BEGIN
return -100002
END
IF @tipoCuentaAhorro = NULL
BEGIN
return -100003
END
IF @Identificacion_Usuario = NULL
BEGIN
return -100004
END
IF @FechaCreacion = NULL
BEGIN
return -100005
END
--Ahora a insertar
-- Se verifica si ya existia
IF EXISTS(SELECT *
FROM CuentaAhorro CA
WHERE CA.Numero_Cuenta = @Numero_Cuenta)
BEGIN
return -100006 -- El Cliente ingresado ya existe
END
ELSE
BEGIN
INSERT dbo.CuentaAhorro
SELECT @Numero_Cuenta, @Saldo, TC.id, CL.id, @FechaCreacion
FROM TipoCuentaAhorro TC, Cliente CL
WHERE TC.Nombre =
@tipoCuentaAhorro
AND CL.Documento_Identificacion = @Identificacion_Usuario
END
END TRY
BEGIN CATCH
return @@ERROR * -1
END CATCH
END
El otro “stored procedure” fue para
la inserción de un nuevo cliente, este “stored procedure” quedo incompleto ya
que no trae una inserción de persona, es decir no incluye el cliente en la tabla
Persona solo en la tabla Cliente, por eso digo que el SP falta por completar, A
continuación el código:
-- Add the parameters for the stored procedure here
@Usuario nvarchar(100),
@Clave nvarchar(100),
@Tipo_Doumento_Identificacion nvarchar(100),
@Documento_Identificacion nvarchar(50),
@Email nvarchar(100),
@Telefono1 int,
@Telefono2 int,
@Nombre nvarchar(100),
@Fecha_Nacimiento date
AS
BEGIN
-- SET NOCOUNT ON added to
prevent extra result sets from
-- interfering with SELECT
statements.
SET NOCOUNT ON;
-- Insert statements for
procedure here
BEGIN TRY
-- Se verifica que los parametros no vengan nulos
IF @Usuario = NULL
BEGIN
return -100001
END
IF @Clave = NULL
BEGIN
return -100002
END
IF @Tipo_Doumento_Identificacion = NULL
BEGIN
return -100003
END
IF @Documento_Identificacion = NULL
BEGIN
return -100004
END
IF @Email = NULL
BEGIN
return -100005
END
IF @Telefono1 = NULL
BEGIN
return -100006
END
IF @Telefono2 = NULL
BEGIN
return -100007
END
IF @Nombre = NULL
BEGIN
return -100008
END
--Ahora a
insertar
-- Se verifica si ya existia
IF EXISTS(SELECT *
FROM Cliente C
WHERE C.Documento_Identificacion = @Documento_Identificacion)
BEGIN
return -100009 -- El Cliente ingresado ya existe
END
ELSE
IF EXISTS(SELECT *
FROM Cliente C
WHERE C.Usuario = @Usuario)
BEGIN
return -100009 -- El usuario ingresado ya existe
END
ELSE
BEGIN
INSERT dbo.Cliente
SELECT TID.id,
@Fecha_Nacimiento, @Usuario, @Clave,
@Tipo_Doumento_Identificacion, @Documento_Identificacion,
@Email, @Telefono1, @Telefono2, @Nombre
FROM TipoID TID
WHERE TID.Nombre =
@Tipo_Doumento_Identificacion
END
END TRY
BEGIN CATCH
return @@ERROR * -1
END CATCH
END
La cantidad de horas invertidas fue de aproximadamente 2 horas, esto debido a confusiones con el formato date a la hora de trabajar con la ejecución de los SP
No hay comentarios:
Publicar un comentario