Ver Mensaje Individual
  #4  
Antiguo 08-07-2007
Saltamontes Saltamontes is offline
Registrado
 
Registrado: dic 2006
Posts: 6
Reputación: 0
Saltamontes Va por buen camino
Hola nuevamente, los !! son de la declaracion del procedimiento "a manita", pero en la pestaña METADATA de InterBase me lo muestra de esa manera:

COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;

/* Stored procedures */

CREATE PROCEDURE "PR_INS_INVCATAREA"
(
"PINVENTARIO" VARCHAR(12),
"PMARCA" VARCHAR(20),
"PMODELO" VARCHAR(20),
"PSERIE" VARCHAR(20),
"PDESCRIPCION" VARCHAR(50),
"PPRECIO" FLOAT,
"PEDOFUNC" VARCHAR(15),
"PFECHAINV" DATE,
"PIDAREA" INTEGER,
"PDEPOSITARIO" VARCHAR(70)
)
AS
BEGIN EXIT; END ^


ALTER PROCEDURE "PR_INS_INVCATAREA"
(
"PINVENTARIO" VARCHAR(12),
"PMARCA" VARCHAR(20),
"PMODELO" VARCHAR(20),
"PSERIE" VARCHAR(20),
"PDESCRIPCION" VARCHAR(50),
"PPRECIO" FLOAT,
"PEDOFUNC" VARCHAR(15),
"PFECHAINV" DATE,
"PIDAREA" INTEGER,
"PDEPOSITARIO" VARCHAR(70)
)
AS
declare variable vidInventario integer;
Begin
insert into Inventario (Inventario,Marca,Modelo,Serie, Descripcion, Precio,EdoFuncional, Fecha_Inv)
VALUES(: pinventario,: pmarca,: pmodelo,: pserie,: pdescripcion,: pprecio,: pedofunc,: pfechainv);
select idInventario from Inventario where Inventario = : pinventario into :vidInventario;
insert into Inv_CatAreas VALUES(: pidArea,: vidInventario,: pdepositario);
End
^

SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;

y como digo, el procedimiento ya lo probe desde InterBase y si funciona, pero desde el Delphi 7 no lo hace, me dice que el primer parametro no es una columna valida...

Ahora intente usar la otra forma, llamando el procedimiento como tal, primero agregando el Icono ese de IBStoredProc a un modulo de datos y llamandolo en el codigo asi (ya cheque la BD y seleccione el proc, que es el unico y que estuviera activo):
Código Delphi [-]
DM.IB_PR_Ins_InvCatAreas.ParamByName('PINVENTARIO').AsString := Trim(txt_inventario.Text);
DM.IB_PR_Ins_InvCatAreas.ParamByName('PMARCA').AsString := txt_marca.Text;
DM.IB_PR_Ins_InvCatAreas.ParamByName('PMODELO').AsString := txt_modelo.Text;
DM.IB_PR_Ins_InvCatAreas.ParamByName('PSERIE').AsString := txt_serie.Text;
DM.IB_PR_Ins_InvCatAreas.ParamByName('PDESCRIPCION').AsString := txt_descripcion.Text;
DM.IB_PR_Ins_InvCatAreas.ParamByName('PPRECIO').AsFloat := StrToFloat(txt_precio.Text);
DM.IB_PR_Ins_InvCatAreas.ParamByName('PEDOFUNC').AsString := txt_edofunc.Text;
DM.IB_PR_Ins_InvCatAreas.ParamByName('PFECHAINV').AsString := DateToStr(DTPfecha.Date);
DM.IB_PR_Ins_InvCatAreas.ParamByName('PIDAREA').AsInteger := StrToInt(txt_inventario.Text);
DM.IB_PR_Ins_InvCatAreas.ParamByName('PDEPOSITARIO').AsString := txt_inventario.Text;
DM.IB_PR_Ins_InvCatAreas.ExecProc;

y de esta forma me sale un error que dice que el valor de mi primer parametro (string de 12 caracteres) no es un valor entero valido.


Les agradezco por la orientacion que me puedan dar.
Sales pues
Nos vemos
Responder Con Cita