Power Builder - Nombrar columnas de tablas a traves de variables

 
Vista:

Nombrar columnas de tablas a traves de variables

Publicado por JUANCA (14 intervenciones) el 19/04/2007 10:29:55
Hola amigos que tal, estoy desarrollando una funcion que recibe como parametros 3 datos --> uf_carga(p1_tabla, p2_colum1,p3_colum2), es decir, esta funcion quieo que reciba como parametros 3 datos:
1. Nombre de una tabla X (ejemplo tabla USUARIOS)
2. Nombre de un campo cualquiera de la tabla X (ejm: codigo)
3. Nombre de otro campo cualquiera de la tabla X (ejm: nombre)

Es decir, con estos datos recibidos quiero armar mi cursor ¿me explico?, se sabe que el cursor sigue esta sintaxis, EJM:

* DECLARE cursorname CURSOR FOR SELECT codigo, nombre FROM usuarios;

OPEN cursorname;
string xv1, xv2
fetch cursorname into :xv1, :xv2;
DO WHILE sqlca.sqlcode = 0
<--................CODIGO A HACER.................>
fetch cursorname into :xv1, :xv2;
LOOP;
CLOSE cursorname;
Bueno esto seria un ejemplo de un cursor normal, pero el `problema que tengo es que quiero reemplazar los campos asgnados en el cursos de arriba (en la sentencia SELECT), por las variables que recibo en mi funcion, de la misma manera igual con el nombre de la tabla por el parametro p_tabla que recibe la funcion¿No se como armar mi SELECT siguiendo esta logica expuesta?, por favor necesito la ayuda de ustedes amigos, estare muy agradecido su interes por ayudarme, cualquier idea es bienvenida. Muchas gracias. En si el problema esta en armar esta linea nomas

1. forma normal
DECLARE cursorname CURSOR FOR SELECT codigo, nombre FROM usuarios;

Por esta ---->
DECLARE cursorname CURSOR FOR SELECT <p2_colum1>, <p3_colum2>
FROM <p1_tabla>;

Es decir, la variable <p2_colum1> = codigo
la variable <p3_colum2> = nombre
la variable <p1_tabla> = name de la tabla, es decir: USUARIOS

Ojala me puedan ayudar con esto amigos, vuelvo a recalcarles de antemano mis agradecimientos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Nombrar columnas de tablas a traves de variable

Publicado por Jorge Escobar (110 intervenciones) el 19/04/2007 17:23:20
fíjate en mi script es parecido al que quieres solo que yo lo envio como parametro toda la sentencia sql en cambio tu solo quieres los nombre tabla y dos campos de la tabla.
espero que te sirva en algo

de esta manera llamo a la funcion
event ue_carga_datos( "select cod_personal, nom_personal from personal")

variables de instancia
===============================
String is_columna1[], is_columna2[]

event ue_carga_datos(string as_sql) return integer
===========================================
Long ll_i
ll_i = 1
this.reset()
SetPointer(HourGlass!)
Prepare SQLSA from :as_sql;
Declare C1 Dynamic Cursor for SQLSA;
Open Dynamic C1;
Fetch C1 Into :is_columna1[1], :is_columna2[1];
Do While Sqlca.SqlCode = 0
this.AddItem(is_columna2[ll_i])
ll_i++
Fetch C1 Into :is_columna1[ll_i], :is_columna2[ll_i];
Loop
If Sqlca.Sqlcode = -1 Then
Return -1
Else
Close C1;
Return 1
End If
SetPointer(HourGlass!)

Nota. este script lo tengo en un object standar visual de tipo ddlb, ddplb, lb que me carga en em mismo control los datos incluidos en el select.

Atte:
Jorge Escobar
Lima - Perú
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Nombrar columnas de tablas a traves de variable

Publicado por juanca07 (14 intervenciones) el 19/04/2007 19:59:20
Ok man, tienes razon, es bastante parecido tu script, al que pretendo hacer, Bueno veo que se hace uso de un cursor dynamic, entendi como se hace, ojala me sirve, muchas gracias man.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar