procedures
Publicado por jo (2 intervenciones) el 22/04/2005 15:57:55
CREATE PROCEDURE Alta_Cliente
@Nombre VARCHAR(20),@apellidos VARCHAR(30),@DNI DNI,@Direccion VARCHAR(20),@Codip cp,@Telefon tf
AS
BEGIN TRANSACTION
IF EXISTS (SELECT DNI
FROM Clients
WHERE DNI LIKE @DNI)
BEGIN
PRINT 'Ya existe el cliente'
ROLLBACK
END
ELSE
BEGIN
INSERT INTO Cliente VALUES(@nombre,@apellidos,@DNI,@Direccion,@Codip,@Telefon)
IF @@ERROR > 0
BEGIN
--ke podria poner aki??
ROLLBACK TRANSACTION
END
IF @@ROWCOUNT <>0
BEGIN
COMMIT TRANSACTION
END
END
DECLARE @Nombre VARCHAR(20),@apellidos VARCHAR(20)@DNI DNI,@Direccion VARCHAR(20),@Codip cp,@Telefon tf
SET @nomBRE='xavi
set @Apellidos='pep''
SET @DNI='43645454-a'
SET @Direccio='Music'
SET @Codip='25003'
SET @Telefon='933232323'
EXECUTE Alta_Client @nom,@apelidos,@DNI,@Direccio,@Codip,@Telefon
Esto funciona correctamente , para evitar el problema de que intenten introducir un mismo dni lo controlo u me lanca el msg de que ya existe el cliente.Bien mi pregunta es la siguiente como capturar los posibles fallos , o sea como podria por ejemple si el usuario intenta executar el procedure sin pasarle por ejemplo el parametro apellidos.
No me salte con ke necesito pasarle el parametro apellidos ,sino ke saliera un mensaje prefdefinido por mi , esto se puede.
@Nombre VARCHAR(20),@apellidos VARCHAR(30),@DNI DNI,@Direccion VARCHAR(20),@Codip cp,@Telefon tf
AS
BEGIN TRANSACTION
IF EXISTS (SELECT DNI
FROM Clients
WHERE DNI LIKE @DNI)
BEGIN
PRINT 'Ya existe el cliente'
ROLLBACK
END
ELSE
BEGIN
INSERT INTO Cliente VALUES(@nombre,@apellidos,@DNI,@Direccion,@Codip,@Telefon)
IF @@ERROR > 0
BEGIN
--ke podria poner aki??
ROLLBACK TRANSACTION
END
IF @@ROWCOUNT <>0
BEGIN
COMMIT TRANSACTION
END
END
DECLARE @Nombre VARCHAR(20),@apellidos VARCHAR(20)@DNI DNI,@Direccion VARCHAR(20),@Codip cp,@Telefon tf
SET @nomBRE='xavi
set @Apellidos='pep''
SET @DNI='43645454-a'
SET @Direccio='Music'
SET @Codip='25003'
SET @Telefon='933232323'
EXECUTE Alta_Client @nom,@apelidos,@DNI,@Direccio,@Codip,@Telefon
Esto funciona correctamente , para evitar el problema de que intenten introducir un mismo dni lo controlo u me lanca el msg de que ya existe el cliente.Bien mi pregunta es la siguiente como capturar los posibles fallos , o sea como podria por ejemple si el usuario intenta executar el procedure sin pasarle por ejemplo el parametro apellidos.
No me salte con ke necesito pasarle el parametro apellidos ,sino ke saliera un mensaje prefdefinido por mi , esto se puede.
Valora esta pregunta


0