Power Builder - Obtener sentencia SQL de un Dw.

 
Vista:

Obtener sentencia SQL de un Dw.

Publicado por mª jose (33 intervenciones) el 28/12/2007 10:42:55
Hola a tod@s!!!!

¿ Como puedo obtener la sentencia SQL de un datawindow?

GRACIAS!!!
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:Obtener sentencia SQL de un Dw.

Publicado por amilcar (407 intervenciones) el 28/12/2007 11:08:23
mira la ayuda de modify datawindow, no si es eso lo q necesitas, pego el ejemplo

The script for the window's Open event stores the original SELECT statement in original_select, an instance variable:

dw_emp.SetTransObject(SQLCA)

original_select = dw_emp.Describe("DataWindow.Table.Select")

The script for a CommandButton's Clicked event attaches a WHERE clause stored in the instance variable where_clause to original_select and assigns it to the DataWindow's Table.Select property:

string rc, mod_string

mod_string = "DataWindow.Table.Select='" &

+ original_select + where_clause + "'"

rc = dw_emp.Modify(mod_string)

IF rc = "" THEN

dw_emp.Retrieve( )

ELSE

MessageBox("Status", "Modify Failed" + rc)

END IF

saludos desde argentina
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:Obtener sentencia SQL de un Dw.

Publicado por Mª Jose (33 intervenciones) el 28/12/2007 12:30:59
Gracias por tu ayuda.
Al final, he conseguido capturar la sentencia SQL de la siguiente manera:

String ls_sentencia

ls_sentencia= dw_maestro.object.datawindow.table.select

Saludos
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:Obtener sentencia SQL de un Dw.

Publicado por Lan (52 intervenciones) el 28/12/2007 22:38:51
Y el evento sqlpreview de los dw..??..no tiene una finalidad???
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
sin imagen de perfil

RE:Obtener sentencia SQL de un Dw.

Publicado por Guillermo Ramirez Melendez (15 intervenciones) el 04/01/2008 19:44:11
El evento sqlpreview puede tener varias finalidades, una de ellas y para lo que lo utilizo mayormente es ara modificar dinamicamente el sql, en este evento puedes obtener la sentenc ia sql de tu datawindow, con la diferencia de que los argumentos que hayas puesto te los reemplaza por los valores que envia al motor de base de datos, lo puedes utilizar si es que quieres evitar sobrecargar tus sentencias sql de argumentos y así poderlas hacer un poco mas dinamicas
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:Obtener sentencia SQL de un Dw.

Publicado por cjulio (2 intervenciones) el 08/01/2008 22:52:19
Hola, si deseas obtener la sentencia sql de un datawindow, del mismo objeto datawindow, al abrir el datawindow le das clic en la barra de menú la opción Design, y luego escoges Data Source, o simplemente le das al icono que dice SQL, te debe salir la sentencia en modo gráfico, entonces seleccionas en la barra de menú la opción Design, y seleccionas Convert to syntax, con esto podrás ver la sentencia sql.

Pero si lo quieres hacer en tiempo de ejecución para modificar dinámicamente la sentencia de tu datawindow, entonces te recomiendo que utilices el evento sqlpreview, el cual tiene una variable llamada sqlsyntax, con la que obtienes la sintaxis del mismo, luego si quieres agregarle algo haces una concatenación del sqlpreview, mas la condición que le agregaras , y utilizas la propiedad setsqlpreview, del datawindow.
Ej.

El query de tu datawindow:
SELECT COLUMNA1, COLUMNA2
FROM TABLA

En el evento sqlpreview de tu datawindow.

String ls_sql_old, ls_sql_new

//Con esto obtienes el query del datawindow
ls_sql_old = sqlsyntax

//Concatenación
ls_sql_new = ls_sql_old + “ WHERE COLUMNA1 = 1 “

dw_1.setsqlpreview(ls_sql_new)

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