Select dinamico

Lo que quiero hacer es un hacer es un select dinámico. Solo que este es muy peculiar, porque se trata de contar los datos de una tabla que cambiar de nombre en su ultima letra, el resultado del conteo lo almaceno en una variable. Osea hay dos factores que deben variar. Te indico lo que estaba haciendo, claro esta erróneamente pero pude servir para que te formes una idea de lo que expresar:
Int ID_MULTI ,CONT
ID_MULTI = 2 // puede tomar varios valores para diferentes tablas con nombre similar
PREPARE SQLSA
FROM "SELECT count(*) INTO ? FROM red_" + String(ID_MULTI) ;
EXECUTE SQLSA USING :CONT ;
// SELECT count(*) INTO :CONT FROM red_2 ; // Esto es lo que se supone que ejecuta pero no funciona como le hago...

1 Respuesta

Respuesta
1
La verdad no entendí si pegaras tu código correcto o se has más concreto qcon tu pregunta te podre ayudar.
NO tengo código correcto.. obviamente por eso necesito tu ayuda, pero si lo que quieres es que se más concreto: pues te lo explico de esta forma:
//Esto es a al lo que quiero llegar y funcione si se trata de un select normal:
SELECT count(*) INTO :CONT FROM red_2 ;
/// Ahora la pregunta es como se convierte a SELECT DINÁMICO, teniendo en cuanta que uso dos variables: ID_MULTI que me dice la tabla selccionada que puede ser red_1, red_2, red_3 etc.. y por otro lado esta CONT donde guardo los datos de a consulta.
Bueno te voy a dar una idea de lo quieres hacer, según lo que necesitas es el count de las tablas
1.- crea un freform con el sgte select : select nvl(count(*),0) tot from dual-- o alguna otra tabla 
2.- Ya en tu ventana tendrás un dw llamado dw_cambio y un litbox que tandra los argumentos de nombres de tablas según tu necesidad, declararas una variable instancia denominada is_lista, que guardara el valor elegido en el litbox
3.- Una ves elegido tu opción, tendrás un botón con el siguiente código
String ls_sql
ls_sql="select nvl(count(*),0)tot from "+is_lista
dw_cambio.setSqlSelect(ls_sql)
dw_cambio.retrieve()
// bueno de aqui ya obtienes el valor por ejemplo
 string ls_count
ls_count=string(dw_cambio.object.tot{1})// corchetes - no llaves solo que no me sale
messagebox(is_lista,ls_count)
Disculpa si no puedo ser más didáctico, pero de esta manera intento ayudarte, por falta de tiempo, cualquier cosa házmelo saber

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas