Ver Mensaje Individual
  #3  
Antiguo 13-04-2009
jconnor82 jconnor82 is offline
Miembro
 
Registrado: feb 2008
Posts: 22
Reputación: 0
jconnor82 Va por buen camino
Ahora estaba buscando informacion sobre arrays en firebird (uso la 2.5) aunq en anteriores tambien se ecuentra esta informacion

la forma en la cual los implemento es

Código SQL [-]
CREATE DOMAIN D_ARRAY_TEXT AS VARCHAR(20)[4];

donde VARCHAR(20) es el tipo de elementos
[4] las dimensiones de arreglo
[m, n] en caso de ser bidimensional

si se quiere usar como campo de un tabla el modo de asignar esta en USING ARRAYS IN PSQL, otros ejemplos de usos en firebird con FIBPlus estan en sus ejemplos.

ahora si les pongo mi consulta, estoy intentado hacer un procedimiento en el cual paso un parametro como arreglo, el problema esta en como leer el arreglo ingresado

Código SQL [-]
/* Dominio creado */

CREATE DOMAIN D_ARRAY_TEXT AS VARCHAR(20)[4];

...

SET TERM ^ ;

CREATE OR ALTER PROCEDURE BUSCADOR (
  P_NOMBRES TYPE OF D_ARRAY_TEXT )
RETURNS (
  RECORDS_FOUND INTEGER )
AS
  DECLARE NOMBRE1 VARCHAR(20);
  DECLARE NOMBRE2 VARCHAR(20);
  DECLARE NOMBRE3 VARCHAR(20);
  DECLARE NOMBRE4 VARCHAR(20);
BEGIN
  NOMBRE1 = P_NOMBRES[1];
  NOMBRE2 = P_NOMBRES[2];
  NOMBRE3 = P_NOMBRES[3];
  NOMBRE4 = P_NOMBRES[4];

  SELECT
    COUNT(*)
  FROM
    USUARIOS
  WHERE
    (:NOMBRE1 IS NULL OR NOMBRE LIKE '%' || :NOMBRE1 || '%')
    AND (:NOMBRE2 IS NULL OR NOMBRE LIKE '%' || :NOMBRE2 || '%')
    AND (:NOMBRE3 IS NULL OR NOMBRE LIKE '%' || :NOMBRE3 || '%')
    AND (:NOMBRE4 IS NULL OR NOMBRE LIKE '%' || :NOMBRE4 || '%')
  INTO :RECORDS_FOUND;
  SUSPEND;
END^

SET TERM ; ^

si alguien tiene informacion de como usarlos en psql, agradeceria su ayuda.
Responder Con Cita