Modify y SetSQL
Publicado por Marce (119 intervenciones) el 25/11/2005 20:49:32
Hola gente! aqui va mi problema:
No logro hacer funcionar el modify para agregar una clausula where a un dw.
este codigo esta un boton de aceptar y quiero recuperar las filas en un determinado periodo.
Aqui solo pruebo mayor o igual que alguna fecha que le doy.
Las fechas de inicio y fin las saco de otros dws.¿alguien me dice que estoy haciendo mal?
string original_select, mod_string, rc, whereclause, orderclause, selectmodificado
datetime ld_fecha1
ld_fecha1= dw_1.getitemdatetime(dw_1.getrow(),"fecha" )
original_select = tab_1.tabpage_1.dw_todos.Describe("DataWindow.Table.Select")
mle_1.text= original_select //para ver como es el Select Actual
whereclause= "WHERE stockdiario.fecha >= " +":"+string( ld_fecha1) // ya probe sin los 2 puntos, no sale
mod_string = "DataWindow.Table.Select=' " + original_select + whereclause +" ' "
rc = tab_1.tabpage_1.dw_todos.Modify(mod_string)
selectmodificado=tab_1.tabpage_1.dw_todos.describe("Datawindow.Table.Select")
mle_2.text= selectmodificado // para ver como quedo el select, y aparentemente esta bien
IF rc = " " THEN
tab_1.tabpage_1.dw_todos.Retrieve( )
ELSE
MessageBox("Status", "Modify Failled" + rc) // esto es lo que siempre sale
END IF
Probe entonces con SetSQL
string OldSyn, NewSyn
ld_fecha1= dw_1.getitemdatetime(dw_1.getrow(),"fecha" )
original_select = tab_1.tabpage_1.dw_todos.Describe("DataWindow.Table.Select")
NewSyn= original_select + ' WHERE stockdiario.fecha >= 05-09-05' // o sino + string(ld_fecha1, "dd-mm-yy")
mle_2.text= NewSyn
Aqui no sale ningun error, simplemente no aparece ninguna fila.
Lo curioso es que probe con otro campo (uno numerico) y anduvo ok.¿ tengo que hacer algo
de especial por ser una fecha?
A parte, obviamente, si hago click dos veces me pega dos veces la calusula where
y esto ya no anda.
¿Cual es la mejor manera de resolver esto sin tener que hacer otro dw
con argumentos de recuperacion?
Gracias por la atencion
Marcela
No logro hacer funcionar el modify para agregar una clausula where a un dw.
este codigo esta un boton de aceptar y quiero recuperar las filas en un determinado periodo.
Aqui solo pruebo mayor o igual que alguna fecha que le doy.
Las fechas de inicio y fin las saco de otros dws.¿alguien me dice que estoy haciendo mal?
string original_select, mod_string, rc, whereclause, orderclause, selectmodificado
datetime ld_fecha1
ld_fecha1= dw_1.getitemdatetime(dw_1.getrow(),"fecha" )
original_select = tab_1.tabpage_1.dw_todos.Describe("DataWindow.Table.Select")
mle_1.text= original_select //para ver como es el Select Actual
whereclause= "WHERE stockdiario.fecha >= " +":"+string( ld_fecha1) // ya probe sin los 2 puntos, no sale
mod_string = "DataWindow.Table.Select=' " + original_select + whereclause +" ' "
rc = tab_1.tabpage_1.dw_todos.Modify(mod_string)
selectmodificado=tab_1.tabpage_1.dw_todos.describe("Datawindow.Table.Select")
mle_2.text= selectmodificado // para ver como quedo el select, y aparentemente esta bien
IF rc = " " THEN
tab_1.tabpage_1.dw_todos.Retrieve( )
ELSE
MessageBox("Status", "Modify Failled" + rc) // esto es lo que siempre sale
END IF
Probe entonces con SetSQL
string OldSyn, NewSyn
ld_fecha1= dw_1.getitemdatetime(dw_1.getrow(),"fecha" )
original_select = tab_1.tabpage_1.dw_todos.Describe("DataWindow.Table.Select")
NewSyn= original_select + ' WHERE stockdiario.fecha >= 05-09-05' // o sino + string(ld_fecha1, "dd-mm-yy")
mle_2.text= NewSyn
Aqui no sale ningun error, simplemente no aparece ninguna fila.
Lo curioso es que probe con otro campo (uno numerico) y anduvo ok.¿ tengo que hacer algo
de especial por ser una fecha?
A parte, obviamente, si hago click dos veces me pega dos veces la calusula where
y esto ya no anda.
¿Cual es la mejor manera de resolver esto sin tener que hacer otro dw
con argumentos de recuperacion?
Gracias por la atencion
Marcela
Valora esta pregunta


0