Ver Mensaje Individual
  #1  
Antiguo 31-01-2007
Tauro78 Tauro78 is offline
Miembro
 
Registrado: sep 2006
Posts: 88
Reputación: 18
Tauro78 Va por buen camino
Como insertar datos a una tabla con un SP

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;

Última edición por Tauro78 fecha: 31-01-2007 a las 20:08:04.
Responder Con Cita