Ver Mensaje Individual
  #1  
Antiguo 03-11-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Reputación: 20
mjjj Va por buen camino
Procedimiento almacenado + condicion

Hola, muy buenas.Utilizo Firebird 2.0, y quiero utilizar un procedimiento almacanado para guardar un registro en la tabla "CLAVES".

Utilizo esto... no puedo ocupar la herramiento para escribir texto SQL.

create or alter procedure INGRESO_USUARIO (USUARIO varchar(4),
CLAVE varchar(8),
NOMBRE varchar(35),
EMAIL varchar(50),
RUT varchar(50),
NACIMIENTO date) asdeclare variable ID integer;
begin
SELECT coalesce(MAX(ID_USUARIO),0) + 1 FROM CLAVES INTO ID;

INSERT INTO claves (ID_USUARIO, USUARIO, CLAVE, NOMBRE, EMAIL, RUT, NACIMIENTO) VALUES (:ID, :USUARIO, :CLAVE, :NOMBRE, :EMAIL, :RUT, :NACIMIENTO);

end


Con esto tengo resuelto el problema de la columna con clave primaria "ID_USUARIO", ahora bien puede ocurrir que se ingresen mas de un registro iguales para la columna "USUARIO", lo cual no está bien, pero tampoco me va a generar un problema en la BD, ya que tengo la clave primaria distinta.
Por otro lado quise utilizar una clave primaria compuesta por los campos ID_USUARIO Y USUARIO, tampoco me sirve.Entonces se me ocurrio la idea de agregar una consulta en el procedimiento, que cheque antes de guardar el registro, si existe un registro con el mismo campo "USUARIO", en caso que si existe me arroje un mensaje... como se puede hacer esto??

Espero me puedan ayudar.

Última edición por mjjj fecha: 03-11-2010 a las 17:55:47. Razón: problemas de formato
Responder Con Cita