Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Dudas con Stored Procedures (https://www.clubdelphi.com/foros/showthread.php?t=14920)

pigu 04-10-2004 23:36:11

Dudas con Stored Procedures
 
Hola a todos:

Como estan???. Espero que muy bien.
Les comento...
Tengo algunas dudas con los stored procedures en interbase ya que estoy acostrumbrado a crear procedimientos almacenados en sql server y a la hora de programarlos en interbase la cosa cambia un poco no???
Mis dudas son estas:

Ejemplo de stp en sql server:
Código SQL [-]
create procedure nombre_stored 
@variable tipo_variable,
@variable tipo_variable,
etc, etc...
as
sentencia sql...

Puedo crear en interbase por ejemplo, un procedimiento que reciba parametros y los inserte
en una tabla???
Como???
Podrian darme un ejemplo?
Desde ya muchas gracias por estar siempre de ese lado

mlara 05-10-2004 02:53:07

El siguiente es un ejemplo muy sencillo de un SP que hace una operación aritmética, y luego la inserta en una tabla:

Código SQL [-]
CREATE PROCEDURE "Oper"(
  numero1 DECIMAL(18, 4),
  numero2 DECIMAL(18, 4),
  signo CHAR(1))
  RETURNS(
  out_result DECIMAL(18, 4))

AS

BEGIN

  IF (signo = '+') THEN
    out_result = numero1 + numero2;
  ELSE IF (signo = '-') THEN
    out_result = numero1 - numero2;
  ELSE IF (signo = '*') THEN
    out_result = numero1 * numero2;
  ELSE IF (signo = '/') THEN
    out_result = numero1 / numero2;

  insert into NombreTabla (resultado) values(:out_result);

  SUSPEND;
END

Este se llama un "select procedure", algo así como un procedimiento seleccionable. También existen los procedimientos ejecutables, pero para que comprendas mejor te invito a leer la documentación de Interbase. Si trabajas con una versión posterior a la 6.0, no importa, igual puede leer los documentos de esa versión.

En este caso para ejecutar el procedimiento podrías escribir:

Código SQL [-]
select * from "Oper"(4.5, 3, '*');

Si le quitas la sentencia SUSPEND al procedimiento entonces se convierte en un procedimiento ejecutable. En ese caso podrías llamar al procedimiento así:

Código SQL [-]
execute procedure "Oper"(4.5, 3, '*');

Mucha suerte.


La franja horaria es GMT +2. Ahora son las 04:46:17.

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