Ir al contenido


Foto

Procedimientos con parámetros de sallida.


  • Por favor identifícate para responder
6 respuestas en este tema

#1 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 12 febrero 2015 - 09:48

Hola amigos.

¿Cómo se declaran los procedimientos de salida en Firebird y como se accede a su valor cuando se ejecutan en delphi?

Saludos
  • 0

#2 ELKurgan

ELKurgan

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 566 mensajes
  • LocationEspaña

Escrito 13 febrero 2015 - 01:36

Creo que se pueden declarar asi:



delphi
  1. create procedure NuevoOid returns (ID integer) as ...


Y luego desde un componente TSQLStoredProc puedes hacer lo siguiente:



delphi
  1. Result := SQLStoredProc1.ParamByName('ID').Value;


No lo he probado pero creo que por ahí van los tiros

Saludos

  • 0

#3 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 13 febrero 2015 - 04:10

Hola.

Lo más sencillo es crear los procedimientos almacenados desde un gestor como IB-Expert, que veo en otro hilo que ya tienes instalado (recuerda que hay una versión Personal Edition que es completamente gratuita).

Declarar los parámetros como entrada o salida es muy sencillo en IB-Expert, puesto que simplemente se introducen en listas (grids) distintas.

Respecto a como recuperar el valor en Delphi, como bien ha dicho ElKurgan, solo tienes que leer el parámetro de salida, una vez ejecutado el procedimiento.

SQLStoredProc1.ExecuteProcedure;
Result := SQLStoredProc1.ParamByName('ID').Value;

Saludos.

  • 0

#4 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 13 febrero 2015 - 09:06

Muchas gracias por su ayuda amigos.

Mi problema con la declaración de parámetros de salida estaba en que estoy sumamente acostumbrado a que en las demás bases de datos estos se declaran en un solo bloque y pueden ser de salida, entrada o salida y entrada. En firebird por el contrario y como bien me indicaron, los parámetros de salida se deben declarar en el bloque return.  Eso generó que me confundiera pues es precisamente allí donde se declaran las columas del recordset que se obtendrá en procedimientos. Pero al final lo declaré allí y decidí ejecutarlo desde delphi con un execproc consiguiendo por fin obtener el parámetro de salida.

Bendito Firebird que me hizo sufrir un poco.  :D  :D  *-)




  • 0

#5 FGarcia

FGarcia

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 687 mensajes
  • LocationMéxico

Escrito 13 febrero 2015 - 07:22


Bendito Firebird que me hizo sufrir un poco.  :D  :D  *-)

PoliTroll ese es un castigo por no tener fe en firebird e ir por el lado oscuro :) :)



  • 0

#6 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 13 febrero 2015 - 09:54

PoliTroll ese es un castigo por no tener fe en firebird e ir por el lado oscuro :) :)


:D  :D  :D  :D me gusta más ese nick que el de poliburro...  :D  :D
  • 0

#7 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 14 febrero 2015 - 12:11


PoliTroll ese es un castigo por no tener fe en firebird e ir por el lado oscuro :) :)


:D  :D  :D  :D me gusta más ese nick que el de poliburro...  :D  :D


Habla con alguien influyente en DelphiAccess a lo mejor logras que te cambien el nick  *-)  :D :D :D :D

Saludox ! :)
  • 0




IP.Board spam blocked by CleanTalk.