Ver Mensaje Individual
  #13 (permalink)  
Antiguo 19/01/2012, 17:17
Avatar de drako_darpan
drako_darpan
 
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: necesito que envie datos dinamicos

Hola que tal, bueno de php no se mucho asi ke te la deberia

Con respecto a tu script por que no lo creas asi:

Código PostgreSQL:
Ver original
  1. ---Nota: Campo1 y Campo2 son alias que yo les di, tu puedes ponerle los nombres mas significativos ;-)
  2.  
  3. CREATE TYPE getlookupdata AS
  4. (
  5.     campo1 VARCHAR(500),
  6.     campo2 VARCHAR(500)
  7. );
  8.  
  9.     CREATE OR REPLACE FUNCTION domo_getlookupdata(pstrtabla character varying, pstrcampolookup character varying, pintidregistro numeric)
  10.     RETURNS SETOF getlookupdata AS
  11.     $BODY$
  12.         DECLARE
  13.             campo1      ALIAS FOR $1; -- Toma los valores de las variables
  14.             campo2      ALIAS FOR $2;
  15.             campo3      ALIAS FOR $3; -- Si el campo es Entero mandalo como INT4, para que no tengas que castearlo de CHAR a INT
  16.      
  17.             reg         getlookupdata; -- El type a regresar
  18.             cSql        VARCHAR(4000);
  19.      
  20.         BEGIN
  21.      
  22.             ----- Quita el id_ por que a lo que entiendo regresar el valor que te esta tomando el campo1, asi regresar unicamente el valor
  23.             IF pintIdRegistro != 0 then
  24.                 cSql := 'SELECT ' || campo1 || ' , ' || campo2 || '
  25.                     FROM ' || campo1 || '
  26.                     WHERE id_'||campo1||' = ' || campo3 || '
  27.                     ORDER BY ' || campo2 || ' ';
  28.             ELSE
  29.                 cSql := 'SELECT ' || campo1 || ' , ' || campo2 || '
  30.                     FROM ' || campo1 || '
  31.                     ORDER BY ' || campo2 || ' ';
  32.             END IF;
  33.            
  34.             FOR reg IN execute cSql
  35.             LOOP
  36.                 RETURN NEXT reg; -- Solo asigna los valores en el orden que tengas el TYPE
  37.             END LOOP;
  38.         RETURN;
  39.         END;
  40.     $BODY$
  41.     LANGUAGE 'plpgsql' VOLATILE;

Una duda, para que consultas sobre pstrtabla si ese valor lo estas regresando