Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   ayuda de como Insertar registro con procedimiento almacenado y campo autoincremento (https://www.clubdelphi.com/foros/showthread.php?t=61852)

El_Chava 24-11-2008 20:55:23

ayuda de como Insertar registro con procedimiento almacenado y campo autoincremento
 
Hola amigos del foro esperando que esten bien vengo en su ayuda ya que deseo aprender a manejar los procedimientos almacenados en firebird y he estado leyendo documentacion pero aun asi no me queda muy claro y me gustaria que me ayudaran con un ejemplo algo sencillo como insertar un registro a una tabla mediante un SP actualmente utilizo firebird 1.5 + delphi 7 y para manejar firebird utilizo el IBExpert. tengo una tabla cliente la cual tiene un campo autoincremento el cual ya tiene su trigger y generator para el campo autoincremento asi que pues la pregunta es como puedo realizar el procedimiento almacenado para agregar el registro y pues como llamarlo desde delphi ya que nunca he utilizado procedimientos almacenados y deseo aprender. mi idea de como puede ser el procedimiento es el siguiente:

Código Delphi [-]
CREATE PROCEDURE INSERTARCLIENTE(NOMBRE VARCHAR(80),DOMICILIO VARCHAR(100),RFC VARCHAR(20))
AS
BEGIN
INSERT INTO CLIENTES(NOMBREC, DOMC, RFCC) VALUES (:NOMBRE,: DOMICILIO,:RFC);
SUSPEND;
END;



bueno esa idea tengo quizas estoy totalmente mal pero pues esa es la idea que tengo ojala me puedan ayudar y de antemano muchas gracias por tomarse el tiempo de leer este mensaje

eduarcol 24-11-2008 21:04:49

solo te faltaria llamarlo desde delphi, si utilizas los Zeos hay un componente llamado TZStoredProc, con ese lo puedes ejecutar. Si utilizas otros componentes me imagino que tendran un equivalente para lo que quieres.

El_Chava 24-11-2008 21:32:13

gracias amigo por tu pronta respuesta pero utilizo los componentes que nuestro amigo Al Gonzalez desarrollo para conectarme al Firebird y pues para los SP creo que utilizare el TIBStoredProc que viene en la pestañe de interbase de delphi no creo que tenga problemas por eso pero ahora si viene lo bueno jeje como logro ejecutar el SP desde delphi y como les paso los valores de antemano muchas gracias

El_Chava 24-11-2008 23:35:15

hola de nuevo aqui tratando de probar como ejecutar el SP que realice hago lo siguiente con un TIBStoredProc lo en enlazo a la base de datos y dentro de su proiedad StoredProcName me sale como opcion el SP que acabo de crear bueno ahi bien pero al momento de ejecutarlo no hace nada el codigo es el siguiente

Código Delphi [-]
dm.spInsertarCliente.Params[0].Value := txtnombre.text;
dm.spInsertarCliente.Params[1].Value := txtdomicilio.text;
dm.spInsertarCliente.Params[2].Value := txtrfc.text;
dm.spInsertarCliente.ExecProc;

ojala me puedan ayudar a resolver el problema de antemano muchas gracias

RONPABLO 25-11-2008 01:23:29

quita el suspend, en el procedimiento almacenado, eso solo sirve para procedimientos que regresan algo así como un dataset

Código Delphi [-]
dm.spInsertarCliente.ParamByName('NOMBRE').asString:= txtnombre.text;
dm.spInsertarCliente.ParamByName('DOMICILIO').asString:= txtdomicilio.text;
dm.spInsertarCliente.ParamByName('RFC').asString:= txtrfc.text;
dm.spInsertarCliente.ExecProc;
dm.trans.commit;

El_Chava 25-11-2008 06:57:42

Muchas gracias RONPABLO efectivamente quite el suspend del procedimiento y pues tambien me faltaba que el trans hiciera un comit y ya quedo. muchas gracias a los que se tomaron la molestia de responder a mi problema nos estaremosviendo bye :D


La franja horaria es GMT +2. Ahora son las 02:29:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi