uper
18-06-2004, 23:16:32
Disculpen ustedes esta pregunta, en una tabla de departamento lo que se requiere es que no se agrege otro departamento con el mismo nombre, mi select es "select id, departamento from departamentos" y ya tengo dadas de alta tres departamentos (contabilidad, produccion, admin) si alguien vuleve a dar de alta un departamento con el nombre de admin ya no puede por que ya esta dada de alta, y para eso me surgio crear un store priocedure.
CREATE EXCEPTION Excep_depto "Ya hay un registo asi..."
CREATE PROCEDURE BuscarDepto (v_depto varchar(20))
AS
DECLARE VARIABLE resul_depto varchar(20);
BEGIN
for SELECT departamento FROM departamentos
WHERE departamento = :v_depto INTO :resul_depto;
do
begin
if (:resul_depto=v_depto) then
begin
EXCEPTIO Excep_depto;
SUSPEND;
end;
end
end
donde v_depto es el parametro que se le pasara del control dbedit al store procedure.
Se puede hacerlo asi para no usar lo llamadado Locate . . . y para ejecutarlo
seria asi se le de la orden de que al grabar los datos confirme que no haiga otro departamento con el mismo nombre.
IBbUSCARdep.ExecProc;
MODULO.IBDEPTOSID.VALUE := ParamByName('v_depto').AsString := dbEdit1.Text;
Gracias.
Me despido de todos ustedes.
Saludo
CREATE EXCEPTION Excep_depto "Ya hay un registo asi..."
CREATE PROCEDURE BuscarDepto (v_depto varchar(20))
AS
DECLARE VARIABLE resul_depto varchar(20);
BEGIN
for SELECT departamento FROM departamentos
WHERE departamento = :v_depto INTO :resul_depto;
do
begin
if (:resul_depto=v_depto) then
begin
EXCEPTIO Excep_depto;
SUSPEND;
end;
end
end
donde v_depto es el parametro que se le pasara del control dbedit al store procedure.
Se puede hacerlo asi para no usar lo llamadado Locate . . . y para ejecutarlo
seria asi se le de la orden de que al grabar los datos confirme que no haiga otro departamento con el mismo nombre.
IBbUSCARdep.ExecProc;
MODULO.IBDEPTOSID.VALUE := ParamByName('v_depto').AsString := dbEdit1.Text;
Gracias.
Me despido de todos ustedes.
Saludo