A lo peor soy yo.
Tengo una . con un select en el que indico "order by numero desc"
Creo un browse con ella. Lo presenta Ok ordenado de mayor a menor. El mayor
numero, arriba del browse. El menor numero abajo.
Añado un nuevo valor con mayor numero y me lo pone abajo.
¿No deberia ponerlo arriba?
Gracias.
Paco V
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Ordenacion
Ordenacion
Paco,
El 'ORDER BY' se queda en el servidor.
Con esto quiero decirte que cuando lanzas un 'query' al servidor éste te
devuelve un conjunto de datos ya ordenado. Incluso si utilizas cursores del
lado del servidor dinámicos la ordenación se termina en el momento en el
que el servidor te devolvió el recordset.
Lo más práctico es utilizar el método SORT del recordset para ordenar el
conjunto de datos por el campo que te interese. No obstante lo anterior,
cada vez que haya un cambio en alguna fila, serás tu el responsable de
'reordenar' el conjunto de datos (normalmente volviendo a hacer un SORT).
Esta ordenación solo afecta a la copia local de los datos (no cambia nada en
el servidor).
Saludos,
José Luis Capel
"Paco V" <ssi@ono.com> escribió en el mensaje de noticias
news:[email=467fe37d@ozsrv2.ozlan.local...]467fe37d@ozsrv2.ozlan.local...[/email]
>
> A lo peor soy yo.
>
> Tengo una . con un select en el que indico "order by numero desc"
> Creo un browse con ella. Lo presenta Ok ordenado de mayor a menor. El
> mayor
> numero, arriba del browse. El menor numero abajo.
> Añado un nuevo valor con mayor numero y me lo pone abajo.
> ¿No deberia ponerlo arriba?
> Gracias.
> Paco V
El 'ORDER BY' se queda en el servidor.
Con esto quiero decirte que cuando lanzas un 'query' al servidor éste te
devuelve un conjunto de datos ya ordenado. Incluso si utilizas cursores del
lado del servidor dinámicos la ordenación se termina en el momento en el
que el servidor te devolvió el recordset.
Lo más práctico es utilizar el método SORT del recordset para ordenar el
conjunto de datos por el campo que te interese. No obstante lo anterior,
cada vez que haya un cambio en alguna fila, serás tu el responsable de
'reordenar' el conjunto de datos (normalmente volviendo a hacer un SORT).
Esta ordenación solo afecta a la copia local de los datos (no cambia nada en
el servidor).
Saludos,
José Luis Capel
"Paco V" <ssi@ono.com> escribió en el mensaje de noticias
news:[email=467fe37d@ozsrv2.ozlan.local...]467fe37d@ozsrv2.ozlan.local...[/email]
>
> A lo peor soy yo.
>
> Tengo una . con un select en el que indico "order by numero desc"
> Creo un browse con ella. Lo presenta Ok ordenado de mayor a menor. El
> mayor
> numero, arriba del browse. El menor numero abajo.
> Añado un nuevo valor con mayor numero y me lo pone abajo.
> ¿No deberia ponerlo arriba?
> Gracias.
> Paco V
Ordenacion
Alguien puede decirme que hago mal, o que me sobra en el codigo?
Al presentar el browse ordena de mayor a menor: OK
Añado un registro:me lo ordena de menor a mayor
WITH OBJECT oFrm := valtaxdat():CreateForm( Self )
:cText := "Crear Nuevo Vale de Taxi"
::oTSQLQuery1:AddNew()
:ShowModal()
if :nModalResult == mrOK
DACACO := ::oDbfDataSet1:CACO
TIPO :="/A-"
::oTSQLQuery1:CACO := CACO(DACACO,tipo)
::oTSQLQuery1:Update()
::oTSQLQuery1:nMaxRecords := 20
::oTSQLQuery1:cSelect := "SELECT * FROM VALESTA ORDER BY NUMERO
DESC"
::oTSQLQuery1:sort("numero", .F.)
::oDBBrowse1:Refresh()
else
::oTSQLQuery1:Cancel()
endif
:END()
END WITH
Al presentar el browse ordena de mayor a menor: OK
Añado un registro:me lo ordena de menor a mayor
WITH OBJECT oFrm := valtaxdat():CreateForm( Self )
:cText := "Crear Nuevo Vale de Taxi"
::oTSQLQuery1:AddNew()
:ShowModal()
if :nModalResult == mrOK
DACACO := ::oDbfDataSet1:CACO
TIPO :="/A-"
::oTSQLQuery1:CACO := CACO(DACACO,tipo)
::oTSQLQuery1:Update()
::oTSQLQuery1:nMaxRecords := 20
::oTSQLQuery1:cSelect := "SELECT * FROM VALESTA ORDER BY NUMERO
DESC"
::oTSQLQuery1:sort("numero", .F.)
::oDBBrowse1:Refresh()
else
::oTSQLQuery1:Cancel()
endif
:END()
END WITH
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Ordenacion
Paco,
Simplemente haz esto:
WITH OBJECT oDataset
:AddNew()
......
:Update()
:Sort( "numero desc", .F. )
END WITH
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Paco V" <ssi@ono.com> escribió en el mensaje
news:4680cfe0$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
> Alguien puede decirme que hago mal, o que me sobra en el codigo?
> Al presentar el browse ordena de mayor a menor: OK
> Añado un registro:me lo ordena de menor a mayor
>
> WITH OBJECT oFrm := valtaxdat():CreateForm( Self )
> :cText := "Crear Nuevo Vale de Taxi"
> ::oTSQLQuery1:AddNew()
> :ShowModal()
> if :nModalResult == mrOK
> DACACO := ::oDbfDataSet1:CACO
> TIPO :="/A-"
> ::oTSQLQuery1:CACO := CACO(DACACO,tipo)
> ::oTSQLQuery1:Update()
> ::oTSQLQuery1:nMaxRecords := 20
> ::oTSQLQuery1:cSelect := "SELECT * FROM VALESTA ORDER BY NUMERO
> DESC"
> ::oTSQLQuery1:sort("numero", .F.)
> ::oDBBrowse1:Refresh()
> else
> ::oTSQLQuery1:Cancel()
> endif
> :END()
> END WITH
>
>
>
Simplemente haz esto:
WITH OBJECT oDataset
:AddNew()
......
:Update()
:Sort( "numero desc", .F. )
END WITH
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Paco V" <ssi@ono.com> escribió en el mensaje
news:4680cfe0$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
> Alguien puede decirme que hago mal, o que me sobra en el codigo?
> Al presentar el browse ordena de mayor a menor: OK
> Añado un registro:me lo ordena de menor a mayor
>
> WITH OBJECT oFrm := valtaxdat():CreateForm( Self )
> :cText := "Crear Nuevo Vale de Taxi"
> ::oTSQLQuery1:AddNew()
> :ShowModal()
> if :nModalResult == mrOK
> DACACO := ::oDbfDataSet1:CACO
> TIPO :="/A-"
> ::oTSQLQuery1:CACO := CACO(DACACO,tipo)
> ::oTSQLQuery1:Update()
> ::oTSQLQuery1:nMaxRecords := 20
> ::oTSQLQuery1:cSelect := "SELECT * FROM VALESTA ORDER BY NUMERO
> DESC"
> ::oTSQLQuery1:sort("numero", .F.)
> ::oDBBrowse1:Refresh()
> else
> ::oTSQLQuery1:Cancel()
> endif
> :END()
> END WITH
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Ordenacion
Gracias una vez mas Ignacio.
Paco V
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> wrote:
>Paco,
>
>Simplemente haz esto:
>
>WITH OBJECT oDataset
> :AddNew()
> ......
> :Update()
> :Sort( "numero desc", .F. )
>END WITH
>
>--
>Ignacio Ortiz de Zúñiga
>http://www.xailer.com
>
>
>"Paco V" <ssi@ono.com> escribió en el mensaje
>news:4680cfe0$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>
>> Alguien puede decirme que hago mal, o que me sobra en el codigo?
>> Al presentar el browse ordena de mayor a menor: OK
>> Añado un registro:me lo ordena de menor a mayor
>>
>> WITH OBJECT oFrm := valtaxdat():CreateForm( Self )
>> :cText := "Crear Nuevo Vale de Taxi"
>> ::oTSQLQuery1:AddNew()
>> :ShowModal()
>> if :nModalResult == mrOK
>> DACACO := ::oDbfDataSet1:CACO
>> TIPO :="/A-"
>> ::oTSQLQuery1:CACO := CACO(DACACO,tipo)
>> ::oTSQLQuery1:Update()
>> ::oTSQLQuery1:nMaxRecords := 20
>> ::oTSQLQuery1:cSelect := "SELECT * FROM VALESTA ORDER BY NUMERO
>> DESC"
>> ::oTSQLQuery1:sort("numero", .F.)
>> ::oDBBrowse1:Refresh()
>> else
>> ::oTSQLQuery1:Cancel()
>> endif
>> :END()
>> END WITH
>>
>>
>>
>
>
Paco V
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> wrote:
>Paco,
>
>Simplemente haz esto:
>
>WITH OBJECT oDataset
> :AddNew()
> ......
> :Update()
> :Sort( "numero desc", .F. )
>END WITH
>
>--
>Ignacio Ortiz de Zúñiga
>http://www.xailer.com
>
>
>"Paco V" <ssi@ono.com> escribió en el mensaje
>news:4680cfe0$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>
>> Alguien puede decirme que hago mal, o que me sobra en el codigo?
>> Al presentar el browse ordena de mayor a menor: OK
>> Añado un registro:me lo ordena de menor a mayor
>>
>> WITH OBJECT oFrm := valtaxdat():CreateForm( Self )
>> :cText := "Crear Nuevo Vale de Taxi"
>> ::oTSQLQuery1:AddNew()
>> :ShowModal()
>> if :nModalResult == mrOK
>> DACACO := ::oDbfDataSet1:CACO
>> TIPO :="/A-"
>> ::oTSQLQuery1:CACO := CACO(DACACO,tipo)
>> ::oTSQLQuery1:Update()
>> ::oTSQLQuery1:nMaxRecords := 20
>> ::oTSQLQuery1:cSelect := "SELECT * FROM VALESTA ORDER BY NUMERO
>> DESC"
>> ::oTSQLQuery1:sort("numero", .F.)
>> ::oDBBrowse1:Refresh()
>> else
>> ::oTSQLQuery1:Cancel()
>> endif
>> :END()
>> END WITH
>>
>>
>>
>
>
Ordenacion
Hola yo tambien tuve el mismo problema y lo resolvi cerrando la consulta, y
volviendola abrir. Mi consulta es la siguiente :
a) el metodo Sort que tan rapido funcionara con un tabla por ej:20.000
registros
b) sera mas rapido ordenarlo o volver a abrir la consulta
c) el registro actual debe ser el ultimo que agregue, que me recomiendas
para buscarlo ?.
d) cuando cierro y abro la tabla de nuevo, si el usuario ordeno la tabla por
otro campo haciendo click en el titulo, como se porque campo lo ordeno ?
Muchas gracias
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:4680d36d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Paco,
>
> Simplemente haz esto:
>
> WITH OBJECT oDataset
> :AddNew()
> ......
> :Update()
> :Sort( "numero desc", .F. )
> END WITH
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Paco V" <ssi@ono.com> escribió en el mensaje
> news:4680cfe0$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>
>> Alguien puede decirme que hago mal, o que me sobra en el codigo?
>> Al presentar el browse ordena de mayor a menor: OK
>> Añado un registro:me lo ordena de menor a mayor
>>
>> WITH OBJECT oFrm := valtaxdat():CreateForm( Self )
>> :cText := "Crear Nuevo Vale de Taxi"
>> ::oTSQLQuery1:AddNew()
>> :ShowModal()
>> if :nModalResult == mrOK
>> DACACO := ::oDbfDataSet1:CACO
>> TIPO :="/A-"
>> ::oTSQLQuery1:CACO := CACO(DACACO,tipo)
>> ::oTSQLQuery1:Update()
>> ::oTSQLQuery1:nMaxRecords := 20
>> ::oTSQLQuery1:cSelect := "SELECT * FROM VALESTA ORDER BY NUMERO
>> DESC"
>> ::oTSQLQuery1:sort("numero", .F.)
>> ::oDBBrowse1:Refresh()
>> else
>> ::oTSQLQuery1:Cancel()
>> endif
>> :END()
>> END WITH
>>
>>
>>
>
>
volviendola abrir. Mi consulta es la siguiente :
a) el metodo Sort que tan rapido funcionara con un tabla por ej:20.000
registros
b) sera mas rapido ordenarlo o volver a abrir la consulta
c) el registro actual debe ser el ultimo que agregue, que me recomiendas
para buscarlo ?.
d) cuando cierro y abro la tabla de nuevo, si el usuario ordeno la tabla por
otro campo haciendo click en el titulo, como se porque campo lo ordeno ?
Muchas gracias
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:4680d36d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Paco,
>
> Simplemente haz esto:
>
> WITH OBJECT oDataset
> :AddNew()
> ......
> :Update()
> :Sort( "numero desc", .F. )
> END WITH
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Paco V" <ssi@ono.com> escribió en el mensaje
> news:4680cfe0$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>
>> Alguien puede decirme que hago mal, o que me sobra en el codigo?
>> Al presentar el browse ordena de mayor a menor: OK
>> Añado un registro:me lo ordena de menor a mayor
>>
>> WITH OBJECT oFrm := valtaxdat():CreateForm( Self )
>> :cText := "Crear Nuevo Vale de Taxi"
>> ::oTSQLQuery1:AddNew()
>> :ShowModal()
>> if :nModalResult == mrOK
>> DACACO := ::oDbfDataSet1:CACO
>> TIPO :="/A-"
>> ::oTSQLQuery1:CACO := CACO(DACACO,tipo)
>> ::oTSQLQuery1:Update()
>> ::oTSQLQuery1:nMaxRecords := 20
>> ::oTSQLQuery1:cSelect := "SELECT * FROM VALESTA ORDER BY NUMERO
>> DESC"
>> ::oTSQLQuery1:sort("numero", .F.)
>> ::oDBBrowse1:Refresh()
>> else
>> ::oTSQLQuery1:Cancel()
>> endif
>> :END()
>> END WITH
>>
>>
>>
>
>