Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Salida procedimiento (Type) que sea Dinamico

Estas en el tema de Salida procedimiento (Type) que sea Dinamico en el foro de PostgreSQL en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/01/2012, 12:43
 
Fecha de Ingreso: enero-2012
Mensajes: 29
Antigüedad: 12 años, 3 meses
Puntos: 0
Alguien me ayuda urgente Postgre: Salida procedimiento (Type) que sea Dinamico

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????

Última edición por jsmaira; 17/01/2012 a las 14:14

Etiquetas: dinamico, end, procedimiento, salida, select, sql, type, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:58.