lunes, 26 de octubre de 2015

Crear campo generador en Firebird

Muchas veces necesitamos tener un código que sea secuencial o autonumerico, en Firebird se llama generador y se crea con el siguiente código:

CREATE GENERATOR GEN_CLIENTE_DIRECCION;

Luego creamos un trigger el cual incrementara en 1 usando la funcion GEN_ID el generador, este es el código:

CREATE TRIGGER BI_CLIENTE_DIRECCION_ID_DIR FOR CLIENTE_DIRECCION
ACTIVE BEFORE INSERT
POSITION 0
AS
BEGIN

  IF (NEW.ID_TABLA IS NULL OR NEW.ID_TABLA = 0) THEN
      NEW.ID_TABLA = GEN_ID(GEN_CLIENTE_DIRECCION, 1);
END;


En PowerBuilder no se necesita programar nada y se incrementara cada vez que se haga Update al DataWindow.

lunes, 19 de octubre de 2015

Usar Stored Procedures en Packages de Oracle en DataWindow

Para poder usar cualquier Stored Procedure que se encuentre en un Package de Oracle en un DataWindow, seguimos los siguientes pasos:

1. Buscamos la conexión de la Base de Datos Oracle que tenemos, clic derecho Properties:



2. Activamos la casilla List Package Subprograms de la pestaña System:

domingo, 18 de octubre de 2015

Usando Stored Procedure Firebird en DataWindow

El siguiente post es la respuesta a las preguntas que he recibido de como usar un Stored Procedure creado en Firebird en un DataWindow.

Primero: El siguiente Stored Procedure en Firebird

CREATE PROCEDURE USP_LISTA_RUTA(
v_RUTA VARCHAR(25))

RETURNS(
  COD_RUT VARCHAR(4) ,
  NOM_RUT VARCHAR(25))


AS

BEGIN


  FOR SELECT
COD_RUT,
                          NOM_RUT
              FROM RUTA
           WHERE NOM_RUT CONTAINING :v_RUTA


  INTO :COD_RUT,
            :NOM_RUT


    DO SUSPEND;

END;


Segundo: En PowerBuilder

1. Creamos un nuevo objeto DataWindow:


2. Elegimos SQL Select, clic en Next.


3. Clic en el botón Cancel.


4. Clic en Convert To Syntax de la opción Design



6. Creamos un argumento



8. Debemos escribir lo siguiente:

 9. Clic en Next

10. Clic en Finish

 Nota:

1. Para el ejemplo usamos un Stored Procedure Firebird seleccionable (porque contiene el comando SUSPEND).
2. Se ejecuta un Stored Procedure Firebird como si fuera una tabla.