hola, en un form tengo 2 edit con los datos Descripcion y Categoria y un boton Aceptar. Quiero saber como hacer una insercion
usando un procedimiento almacenado. Uso FB y MDO.
Desde el form lo llamaria asi:
Código Delphi
[-]
with MDOSPClientes do
begin
Parameters.ParamByName('@Descripcion').Value := Edit1.Text;
Parameters.ParamByName('@Categoria').Value := Edit2.Text;
Prepared := True;
ExecProc;
end;
En este SP defini el generador de la clave y antes defini el disparador sobre la tabla que se dispara antes que se inserte un registro.
El tema es que no se como debo crear el SP con los datos a insertar y como debo incrementar el valor del generador ?
Entonces al dar click en el boton primero llamo al SP que incrementa el disparador y luego llamo el SP que hace la insercion ?
Código:
SET TERM ^ ;
CREATE PROCEDURE SP_GEN_CATEGORIAS_ID
returns (
id integer)
as
BEGIN
ID = GEN_ID(GEN_NRO_CATEGORIA, 1);
SUSPEND;
END^
SET TERM ; ^
GRANT EXECUTE ON PROCEDURE SP_GEN_CATEGORIAS_ID TO SYSDBA;
Código:
CREATE GENERATOR GEN_NRO_CATEGORIA;
SET TERM ^ ;
CREATE TRIGGER CATEGORIAS_BI FOR CATEGORIAS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.NRO_CATEGORIA IS NULL) THEN
NEW.NRO_CATEGORIA = GEN_ID(GEN_NRO_CATEGORIA,1);
END
^
SET TERM ; ^
Código:
CREATE GENERATOR GEN_NRO_CATEGORIA;
SET GENERATOR GEN_NRO_CATEGORIA TO 0;