Estimado;
No he tenido necesidad de cambiar el Orden.
Esperemos que Daniel lea y nos comente
Saludos
Chaco - Argentina
Estimado;
No he tenido necesidad de cambiar el Orden.
Esperemos que Daniel lea y nos comente
Saludos
Tengo esta consulta:
dFec := "20141217"
oQry := oServer:Query("SELECT c.id,c.fechareserva,c.fecha,d.nombre" + ;
" FROM s_citas c" + ;
" INNER JOIN s_clientes d ON d.id = c.idcliente" + ;
" WHERE c.fechareserva = '" + dFec + "'" + ;
" ORDER BY c.inicio")
DEFINE DIALOG oDlg TITLE "xbrowse / tdolphin" FROM 5, 5 TO 30, 90
@ 9.5,3 BUTTON oBtn PROMPT "SetWhere" OF oDlg ACTION( dFec2 := ( VAL(dFec) + 1 ),;
dFec := Alltrim(Str(dFec2)),;
oQry:SetWhere("c.fechareserva = '" + dFec + "'"),;
oBrw:Refresh(),;
oBrw:SetFocus() )
@ 9.5,12 BUTTON oBtn PROMPT "Varios" OF oDlg ACTION( msginfo(oQry:nRecNo(),oQry:nRecCount()),;
oBrw:SetFocus() )
@ 9.5,21 BUTTON oBtn PROMPT "Locate" OF oDlg ACTION( cTime := Time(),;
nPos := oQry:Locate( { "27830" }, { "id" } ),;
msginfo( "Time " + ElapTime( cTime, Time() ), nPos ),;
oBrw:SetFocus() )
@ 9.5,30 BUTTON oBtn PROMPT "Seek" OF oDlg ACTION( cTime := Time(),;
nPos := oQry:Seek( "27833", "id" ),;
msginfo( "Time " + ElapTime( cTime, Time() ), nPos ),;
oBrw:SetFocus() )
@ 9.5,39 BUTTON oBtn PROMPT "Find" OF oDlg ACTION( cTime := Time(),;
nPos := oQry:Find( { "27835" }, { "id" } ),;
msginfo( "Time " + ElapTime( cTime, Time() ), nPos ),;
oBrw:SetFocus() )
@ 0,0 XBROWSE oBrw OF oDlg SIZE 330,160
WITH OBJECT oBrw
:SetDolphin( oQry )
:nMarqueeStyle := MARQSTYLE_HIGHLROW
:CreateFromCode()
:aCols[3]:bLClickHeader := { || oQry:LoadQuery(), oBrw:Refresh() }
END
ACTIVATE DIALOG oDlg CENTERED ON INIT oBrw:SetFocus()
oQry:End()
oServer:End()
ORDER BY c.idDaniel,
de esa forma el SEEK si funciona, pero en ocasiones se realizan querys mas complejos con un orden de varios campos o diferente al dato a veces a buscar, ahi que aplica?
el LOCATE y el FIND me sacan del sistema sin error
Gracias
Saludos
Francisco Horta wrote:Daniel,
de esa forma el SEEK si funciona, pero en ocasiones se realizan querys mas complejos con un orden de varios campos o diferente al dato a veces a buscar, ahi que aplica?
el LOCATE y el FIND me sacan del sistema sin error
Gracias
Saludos
oQry:SetOrder("CAMPO")El detalle de usar el setorder() es que te deja el qry ordenado por ese campo, asi que deberia de volver al order by anterior si estas haciendo algun ordenamiento, lista por browse o reporte, etc...por lo menos pasa en mi caso, no se si sera que hago algo mal, por eso tengo el where original en una VAR, realizo mi where como si fuese busqueda, pero solo cuando la busqueda es coincidencia por mas de un campo y luego llamo de nuevo mi where original, no he intentando hacerlo con el order by...saludos... ![]()
Adhemar,
si puede ser una solucion,
cOldOrder := oQry:cOrder
oQry:SetOrder(minuevoorden)
oQry:Seek(loquebusco)
oQry:SetOrder(cOldOrder)
mas o menos algo asi.
Jose Luis,
el setwhere es bueno y funciona bien cuando en tu query tiene solo un where, pero si tienes mas de un where en un query complejo, ya no funciona, esto es para consultas simples, imagino que asi funcionan los demas SETs
y locate y find? veo que usas arreglos para varios datos, pero sigue sin funcionar y no he podido probar
Gracias
Saludos
A lo que me refiero es que el seek, locate y find te sirve solo si buscas por un campo, pero si quieres busqueda por lo menos por fechas o que coincidan mas de un campo, entonces lo que te recomendaria es un where, puedes guardar el WHERE viejo y luego reestrablecerlo, bueno, es solo una idea y solucion funcional, cada quien dicen tiene su manera de matar piojos...saludos... ![]()
Francisco Horta wrote:Adhemar,
si puede ser una solucion,
cOldOrder := oQry:cOrder
oQry:SetOrder(minuevoorden)
oQry:Seek(loquebusco)
oQry:SetOrder(cOldOrder)
mas o menos algo asi.
Jose Luis,
el setwhere es bueno y funciona bien cuando en tu query tiene solo un where, pero si tienes mas de un where en un query complejo, ya no funciona, esto es para consultas simples, imagino que asi funcionan los demas SETs
y locate y find? veo que usas arreglos para varios datos, pero sigue sin funcionar y no he podido probar
Gracias
Saludos
Daniel,
De hecho al ir entendiendo mejor el SQL las sentencias se van puliendo y ala vez quieres mas en un solo query, tdolphin trae metodos muy completos y que ire probando para tratar de explotarlo al maximo, siempre son excelentes tus aportes. Por lo demas ire viendo soluciones desde SQL, a toda marcha.
Gracias
Saludos