Ver Mensaje Individual
  #2  
Antiguo 05-10-2004
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Reputación: 24
mlara Va por buen camino
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(ut_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.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.

Última edición por mlara fecha: 05-10-2004 a las 03:00:35.
Responder Con Cita