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 con procedimiento almacenado y query (https://www.clubdelphi.com/foros/showthread.php?t=27938)

XBart 04-12-2005 22:13:03

Ayuda con procedimiento almacenado y query
 
Antes que nada gracias por al atencion prestada, ahora la duda:
uso delphi 6, ibx y firebird

tengo un procedimiento almacenado en la base de datos, es un procedimiento para la insercion de 1 registro, el asunto esta es que lo quiero usar con ibquery en lugar de ibstoreproc, pero no se como llamar el sp ni como pasarle los parametros.

gracias de antemano

Héctor Randolph 04-12-2005 22:50:10

Ejemplo
 
UItiliza el componente TIBSQL, te dejo un ejemplito para que lo pongas en práctica:

Código Delphi [-]
  with IBSQL1 do
  begin
    SQL.Add('INSERT INTO tabla');
    SQL.Add('campo1,campo2');
    SQL.Add('VALUES (:Param1,:Param2)');
    ParamByName('Param1').AsInteger=1;
    ParamByName('Param2').AsString:='Algo';
    ExecQuery;
  end;

Un saludo

XBart 05-12-2005 02:08:03

gracias por tu respuesta, el asunto es que el procedimiento almacenado esta en la base de firebird, y quiero saber como usarlo con un ibquery, y segun entiendo tu ejemplo es para insertar un registro pero sin unsar el procedimiento almacenado, si estoy mal corrigeme, por tu atencion gracias

Héctor Randolph 05-12-2005 03:42:55

Tienes razón, me he confundido un poco.

Sin embargo, no creo que haya problema al ejecutar el procedimiento de esta forma.

Código Delphi [-]
  with IBSQL1 do
  begin
    SQL.Add('EXECUTE PROCEDURE My_Proc(:param1,:param2)');
    ParamByName('Param1').AsInteger=1;
    ParamByName('Param2').AsString:='Algo';
    ExecQuery;
  end;

Cosas que hay que tener en cuenta:
  • Si el procedimiento solamente inserta registros y no devuelve nada lo anterior funciona.
  • Si el procedimiento es del tipo FOR-SELECT y devuelve una serie de registros, entonces lo normal es invocarlo con SELECT y tratarlo como una tabla más.

Un saludo.


La franja horaria es GMT +2. Ahora son las 06:39:46.

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