martes, 30 de agosto de 2016

Usando Function PostgreSQL simple en DataWindow

Ya habíamos visto como usar una función de PostgreSQL en un DataWindow:

Usando Function PostgreSQL en DataWindow

Hay casos mas simples, donde necesitamos usar un SELECT mas simple. Ejemplo necesitamos un DDDW en el cual podamos listar el id y el nombre de los productos, entonces creamos la función en PostgreSQL, con el siguiente código:

























dom_integer, dom_bigint y dom_nombrelargo son dominios. Ya hemos visto sobre dominios en este post:

Usando Dominios en PostgreSQL

Hay 2 opciones para ejecutar la función:







Cualquiera de las 2 opciones la copiamos en el Data Source del DataWindow y listo.

miércoles, 17 de agosto de 2016

Listar tablas con su primary key en PostgreSQL

El siguiente script, devuelve todas las tablas de una base de datos PostgreSQL, con su respectiva primary key:


martes, 16 de agosto de 2016

Equivalencia de Tabla DUAL de Oracle en PostgreSQL

En Oracle existe la Tabla DUAL, que es una tabla, creada durante la instalación, con una sola columna llamada DUMMY de VARCHAR2(1)  y una sola fila de contenido 'X'. El propietario es SYS y puede ser accedida por cualquier usuario.


Se usa generalmente para ejecutar funciones como SYSDATE.

La Tabla Dual no existe en PostgreSQL, pero hay dos soluciones:

1. Crear la Tabla Dual:

create table public.dual
(
  dummy VARCHAR(1)
);

2. Esta es la que uso: solo ejecutando SELECT con el valor que se requiere, ejemplo:

Necesito tener en un combo todas las familias de un producto, para un filtro en una ventana, al seleccionar una familia debe filtrar los productos que pertenecen a esa familia. La tabla tiene la siguiente estructura:


En mi combo necesito también el dato 'TODAS', para que así el filtro devuelva los productos que pertenecen a las 5 familias.

En Oracle usando:


En PostgreSQL:


Entonces hacemos el siguiente script, que luego lo copiamos en el SQL de un DataWindow:


Espero sea ayuda para ustedes.

viernes, 12 de agosto de 2016

Objeto para reemplazar el uso de DDDW

He creado un objeto para reemplazar el uso de un DDDW o una ventana de búsqueda y/o filtro, el cual tiene las siguientes funcionalidades:

-Se adapta a cualquier campo de un DataWindow.
-Tiene un filtro de búsqueda.
-Trabaja como cualquier DDDW.
-Se cierra al posicionarse en cualquier otro campo del DW u otro objeto de la ventana.
-Aumenta de tamaño. No sale del tamaño de la ventana.


Si el dato filtrado en la búsqueda es muy grande, como se muestra en la siguiente imagen:









Se puede aumentar el tamaño y visualizar mejor el dato, como se muestra en la siguiente imagen sin perder la forma.

(Dar clic en la imagen para agrandar)

Si lo puedes imaginar en PowerBuilder lo puedes crear.