Power Builder - EXECUTE INMEDIATE

 
Vista:

EXECUTE INMEDIATE

Publicado por Carlos Rojas (66 intervenciones) el 28/03/2005 06:38:43
Hola, tengo el siguiente codigo:

string sSql,sNomTabla,sNomCampo
Long l_codigo

sSql = "Select Max(" + sNomCampo + ") into : l_codigo from " + sNomTabla

Execute Inmediate :sSql;

return l_codigo

Pero me da un error, por favor si alguien me puede ayudar ya que este comando tiene que ser parametrizado como muestro en el ejemplo, si alguien me puede ayudar. Gracias de antemano
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:EXECUTE INMEDIATE

Publicado por Oscar (1178 intervenciones) el 28/03/2005 21:10:31
Según la ayuda de PB, el EXECUTE IMMEDIATE, se usa para ejecutar un SQL que no produce ningún resultado o cuando no se requiere introducir parámetros. Por ejemplo para borrar una tabla, etc.
En tu caso, debes usar un procedimiento almacenado o buscar otro método.
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:Calcular el MAX de cualquier campo y tabla

Publicado por Oscar (1178 intervenciones) el 28/03/2005 22:31:04
Como no se puede utilizar EXECUTE IMMEDIATE, utilizaremos un Cursor, para calcular el valor maximo del campo y tabla que se especifiquen. Es decir:

String ls_Sql, ls_NomCampo, ls_NomTabla
String ls_ValMax

ls_NomCampo="nombre_campo"
ls_NomTabla="nombre_tabla"

ls_Sql = "SELECT MAX("+ls_NomCampo+") FROM " +ls_NomTabla+" "

DECLARE micursor DYNAMIC CURSOR FOR sqlsa;
PREPARE sqlsa FROM :ls_Sql;
OPEN DYNAMIC micursor;
FETCH micursor INTO :ls_ValMax;
CLOSE micursor;

MessageBox("Resultado", ls_ValMax)
//----------------Fin-----------------------------

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:EXECUTE INMEDIATE

Publicado por Jorge (900 intervenciones) el 29/03/2005 14:15:09
Hola
Quizas te ayude en algo
Yo estoy calculando un MAX dentro de una dw en el SQL ,
no en modo grafico de esta manera

SELECT Max("pagos"."fecha_proceso"),
Trim("pagos"."cliente")
FROM "pagos"
GROUP BY "pagos"."cliente"
ORDER BY "pagos"."cliente" ASC

y me llena la dw con los datos s/ la ultima fecha mayor de
pago

Suerte !!
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

EXECUTE INMEDIATE

Publicado por Alien1 (1 intervención) el 16/11/2016 18:16:20
El problema son los tipos de datos, se nota que no se puede asiganr un STRING (sNomCampo) un tipo LONG (l:codigo)
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