17/01/2012, 14:20
|
| | Fecha de Ingreso: enero-2012
Mensajes: 29
Antigüedad: 12 años, 10 meses Puntos: 0 | |
Postgre S.O.S : campo dinamico en type en la salida... Bueno muchachos ojala alguien me pudiera ayudar que llevo varios dias intentando y buscando y nada..lo que pasa es que tengo un procedimiento el cual tiene campos dinamicos..el procedimeinto en si funciona perfecto..el problema es la salida el "type"...ya que la salida debiera ser campo dinamico y no se como hacerlo pondre parte del codigo para q me entiendan mejor..eso si estoy trabajando en php..
codigo php:
$Datos = LocalQueryHandler("DOMO_getLookupData", $pParams, "");
$i = 0;
if ($Datos) {
foreach ($Datos as $Result) {
$param = $Result[$id_tabla] . "/" . $pasaValor;
$Value[$i] = $Result;
$Value[$i]['nombre_atributo'] = $campo_look;
$Value[$i]['PasaValor'] = $param;
$Value[$i]['SigCombo'] = "\"" . $sig_combo . "\"";
$i++;
$Datos = los trae perfecto y $pasaValor tambien los trae bien...
el problema esta en = $Result[$id_tabla] ...es aqui donde no trae nada de nada..aqui es donde deberia mostrar los datos del procedimeinto en si..mas singular el id_tabla que trae el procedimiento..pero este id_tabla es dinamico y no se como hacer para q la salida del procedimiento sea dinamico..si los datos los pongo en duro funciona .pero no es lo que busco...alguien que me pueda ayudar por favor
aqui esta el procedimiento:
CREATE OR REPLACE FUNCTION domo_getlookupdata(pstrtabla character varying, pstrcampolookup character varying, pintidregistro character varying)
RETURNS SETOF getlookupdata AS
$BODY$
DECLARE
res getlookupdata%rowtype;
pintIdRegistro VARCHAR(100) = 0;
vsql VARCHAR(4000);
BEGIN
/*****si se fijan el procedimiento ya toma campos dinamicos *****o sea puede ser de cualquier tabla los datos*****////
IF pintIdRegistro <> 0 then
vsql := 'SELECT id_' || pstrTabla || ' , '
|| pstrCampoLookup || ' FROM ' || pstrTabla
|| ' WHERE id_'||pstrTabla||' = ' || pintIdRegistro :: VARCHAR(30)
|| ' ORDER BY ' || pstrCampoLookup || ' ';
ELSE
vsql := 'SELECT id_' || pstrTabla || ' , '
|| pstrCampoLookup || ' FROM ' || pstrTabla
|| ' ORDER BY ' || pstrCampoLookup || ' ';
END IF;
FOR res IN
execute vsql
LOOP
RETURN NEXT res;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION domo_getlookupdata(character varying, character varying, character varying) OWNER TO sa;
y este es el Type:
Create type getlookupdata as
(id_tabla text,
combo text)
id_tabla es el problema como hacerlo dinamica su salida???? |