Foros del Grupo Albor

Un lugar de encuentro para los programadores de habla hispana

Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
 
   Inicio   Buscar Ingresar Registrarse  
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Como insertar datos a una tabla con un Procedimiento Almacenado  (Leído 5395 veces)
tauro78
Newbie
*
Desconectado Desconectado

Mensajes: 1


« : 31 de Enero de 2007, 19:15:20 »


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:
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;
En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Foros del Grupo Albor | Impulsado por SMF 1.1.16.
© 2005, Simple Machines. Todos los Derechos Reservados.
XHTML 1.0 válido! CSS válido!
Página creada en 0.158 segundos con 19 consultas.