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.

Browse en tablas grandes

Foro de Xailer profesional en español
Responder
Williams Pacheco
Mensajes: 165
Registrado: Mié Jul 08, 2009 5:26 pm

Browse en tablas grandes

Mensaje por Williams Pacheco »

Estimados amigos
Deseo antes que nada señalar que estoy de acuerdo en que el modelo SQL no
"deberia" ser usado para manejar browser de tablas grandes al estilo DBF, no
obstante, muchos de nuestros sistemas desarrollados en PHP/MySQL actualmente
en uso en la web hacen ese tipo de manejos "paginando" los resultados
obtenidos y requiero implementar esta solucion en el sistema "local"
desarrollado en Xailer, por esto mi consulta sobre el tema.
Me gustaria saber de que manera puedo montar un browse sobre una tabla de
1,000,000 de registros aproximadamente donde la paginacion sea transparente
al usuario, es decir, sin que el usuario deba seleccionar previamente rangos
de informacion a través otros controles, mas bien me gustaria colocar un
limite interno para manipular la consulta.
De lograr este objetivo entiendo que podria simplificar y acelerar la
velocidad de mis consultas sustancialmente puesto que en los browser de mi
aplicacion usualmente no presento mas de 15 filas a la vez. Si una consulta
me arrojara 200 filas pudiera implementar el mismo esquema que con una tabla
grande, paginando mi resultado en conjuntos de 15 o 20 filas y cada vez que
el usuario intente hacer un skip sobre el final del dataset, hacer el query
de los proximos registros... no se si me explico bien.
En otras palabras, pretendo emular el comportamiento de otras herramientas
especializadas en el manejo de tablas [x]SQL tales como MySQLFront o
Navicat.
Gracias por su ayuda y comentarios...
--
Saludos
Williams Pacheco
Jesus Semper
Mensajes: 54
Registrado: Lun Ene 04, 2010 2:40 pm

Browse en tablas grandes

Mensaje por Jesus Semper »

Creo que no tengo conocimiento para resolverlo pero no me queda muy claro.
¿Tus tablas estan en DBF normales o puedes usar (o usas) SQL o ADS?
"Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
news:4aa945ca$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Estimados amigos
>
> Deseo antes que nada señalar que estoy de acuerdo en que el modelo SQL no
> "deberia" ser usado para manejar browser de tablas grandes al estilo DBF,
> no obstante, muchos de nuestros sistemas desarrollados en PHP/MySQL
> actualmente en uso en la web hacen ese tipo de manejos "paginando" los
> resultados obtenidos y requiero implementar esta solucion en el sistema
> "local" desarrollado en Xailer, por esto mi consulta sobre el tema.
>
> Me gustaria saber de que manera puedo montar un browse sobre una tabla de
> 1,000,000 de registros aproximadamente donde la paginacion sea
> transparente al usuario, es decir, sin que el usuario deba seleccionar
> previamente rangos de informacion a través otros controles, mas bien me
> gustaria colocar un limite interno para manipular la consulta.
>
> De lograr este objetivo entiendo que podria simplificar y acelerar la
> velocidad de mis consultas sustancialmente puesto que en los browser de mi
> aplicacion usualmente no presento mas de 15 filas a la vez. Si una
> consulta me arrojara 200 filas pudiera implementar el mismo esquema que
> con una tabla grande, paginando mi resultado en conjuntos de 15 o 20 filas
> y cada vez que el usuario intente hacer un skip sobre el final del
> dataset, hacer el query de los proximos registros... no se si me explico
> bien.
>
> En otras palabras, pretendo emular el comportamiento de otras herramientas
> especializadas en el manejo de tablas [x]SQL tales como MySQLFront o
> Navicat.
>
> Gracias por su ayuda y comentarios...
>
> --
> Saludos
>
> Williams Pacheco
Williams Pacheco
Mensajes: 165
Registrado: Mié Jul 08, 2009 5:26 pm

Browse en tablas grandes

Mensaje por Williams Pacheco »

Gracias Jesus por contestar
Son tablas MySQL
Tenemos una base de datos que maneja algunas tablas con aproximadamente
1,000,000 de registros y otras hasta con 6 millones de registros que
funcionan con nuestra aplicacion Web desarrollada con PHP+MySQL
Actualmente estamos desarrollando una aplicacion local con Xailer y deseamos
emular el mismo comportamiento que la aplicacion web tiene
Saludos
Williams Pacheco
"Jesus Semper" <jesus@semper-sl.com> wrote in message
news:4aa948e3$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Creo que no tengo conocimiento para resolverlo pero no me queda muy claro.
> ¿Tus tablas estan en DBF normales o puedes usar (o usas) SQL o ADS?
>
>
>
> "Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
> news:4aa945ca$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Estimados amigos
>>
>> Deseo antes que nada señalar que estoy de acuerdo en que el modelo SQL no
>> "deberia" ser usado para manejar browser de tablas grandes al estilo DBF,
>> no obstante, muchos de nuestros sistemas desarrollados en PHP/MySQL
>> actualmente en uso en la web hacen ese tipo de manejos "paginando" los
>> resultados obtenidos y requiero implementar esta solucion en el sistema
>> "local" desarrollado en Xailer, por esto mi consulta sobre el tema.
>>
>> Me gustaria saber de que manera puedo montar un browse sobre una tabla de
>> 1,000,000 de registros aproximadamente donde la paginacion sea
>> transparente al usuario, es decir, sin que el usuario deba seleccionar
>> previamente rangos de informacion a través otros controles, mas bien me
>> gustaria colocar un limite interno para manipular la consulta.
>>
>> De lograr este objetivo entiendo que podria simplificar y acelerar la
>> velocidad de mis consultas sustancialmente puesto que en los browser de
>> mi aplicacion usualmente no presento mas de 15 filas a la vez. Si una
>> consulta me arrojara 200 filas pudiera implementar el mismo esquema que
>> con una tabla grande, paginando mi resultado en conjuntos de 15 o 20
>> filas y cada vez que el usuario intente hacer un skip sobre el final del
>> dataset, hacer el query de los proximos registros... no se si me explico
>> bien.
>>
>> En otras palabras, pretendo emular el comportamiento de otras
>> herramientas especializadas en el manejo de tablas [x]SQL tales como
>> MySQLFront o Navicat.
>>
>> Gracias por su ayuda y comentarios...
>>
>> --
>> Saludos
>>
>> Williams Pacheco
>
>
Jesus Semper
Mensajes: 54
Registrado: Lun Ene 04, 2010 2:40 pm

Browse en tablas grandes

Mensaje por Jesus Semper »

No me tomes muy en serio ya que no he trabajado con SQL y en XAiler estoy
aprendiendo pero en MySQL, por ejemplo existe la clausula "SELECT ... LIMIT
15, 30" que te permite seleccionar los registros 15 al 30.
Simultaneamente el objeto "TSQLQuery" veo que tiene la propiedad "cSelect"
que debe permitirte indicar el select que deseas. En la documenteacion hay
un ejemplo:
WITH OBJECT oDataset
:cSelect := "SELECT * FROM CLIENTS WHERE Name = ? AND Age = ? AND
HIREDATE >= ?"
:aSQLParams := { "John", 25, Ctod( "01/01/2008" ) }
END WITH
Si cada vez que el usuario pulsa arriba o abajo (o como lo quieras
controlar) le cambias la select por otra con
+15 o -15 registros (segun vaya arriba o abajo) deberia funcionar.
.... si estoy equivocado, quien lo sepa que me corrija.
Un saludo.
"Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
news:[email=4aa9508e@svctag-j7w3v3j....]4aa9508e@svctag-j7w3v3j....[/email]
> Gracias Jesus por contestar
>
> Son tablas MySQL
>
> Tenemos una base de datos que maneja algunas tablas con aproximadamente
> 1,000,000 de registros y otras hasta con 6 millones de registros que
> funcionan con nuestra aplicacion Web desarrollada con PHP+MySQL
>
> Actualmente estamos desarrollando una aplicacion local con Xailer y
> deseamos emular el mismo comportamiento que la aplicacion web tiene
>
> Saludos
>
> Williams Pacheco
>
> "Jesus Semper" <jesus@semper-sl.com> wrote in message
> news:4aa948e3$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Creo que no tengo conocimiento para resolverlo pero no me queda muy
>> claro.
>> ¿Tus tablas estan en DBF normales o puedes usar (o usas) SQL o ADS?
>>
>>
>>
>> "Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
>> news:4aa945ca$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>> Estimados amigos
>>>
>>> Deseo antes que nada señalar que estoy de acuerdo en que el modelo SQL
>>> no "deberia" ser usado para manejar browser de tablas grandes al estilo
>>> DBF, no obstante, muchos de nuestros sistemas desarrollados en PHP/MySQL
>>> actualmente en uso en la web hacen ese tipo de manejos "paginando" los
>>> resultados obtenidos y requiero implementar esta solucion en el sistema
>>> "local" desarrollado en Xailer, por esto mi consulta sobre el tema.
>>>
>>> Me gustaria saber de que manera puedo montar un browse sobre una tabla
>>> de 1,000,000 de registros aproximadamente donde la paginacion sea
>>> transparente al usuario, es decir, sin que el usuario deba seleccionar
>>> previamente rangos de informacion a través otros controles, mas bien me
>>> gustaria colocar un limite interno para manipular la consulta.
>>>
>>> De lograr este objetivo entiendo que podria simplificar y acelerar la
>>> velocidad de mis consultas sustancialmente puesto que en los browser de
>>> mi aplicacion usualmente no presento mas de 15 filas a la vez. Si una
>>> consulta me arrojara 200 filas pudiera implementar el mismo esquema que
>>> con una tabla grande, paginando mi resultado en conjuntos de 15 o 20
>>> filas y cada vez que el usuario intente hacer un skip sobre el final del
>>> dataset, hacer el query de los proximos registros... no se si me explico
>>> bien.
>>>
>>> En otras palabras, pretendo emular el comportamiento de otras
>>> herramientas especializadas en el manejo de tablas [x]SQL tales como
>>> MySQLFront o Navicat.
>>>
>>> Gracias por su ayuda y comentarios...
>>>
>>> --
>>> Saludos
>>>
>>> Williams Pacheco
>>
>>
>
Williams Pacheco
Mensajes: 165
Registrado: Mié Jul 08, 2009 5:26 pm

Browse en tablas grandes

Mensaje por Williams Pacheco »

Jesus
Nuevamente gracias por tu atencion sobre este tema
Como dije en mi anterior post, trabajamos con MySQL y conocemos bien su
comportamiento ya que desarrollamos aplicaciones web con PHP y esta base de
datos desde hace mucho tiempo
Efectivamente la clausula LIMIT como indicas se utiliza con fines de
paginacion en nuestros sistemas. El problema radica en que para ponerla en
practica en Xailer requiero conocer como manejar algunos eventos que se
disparan en la navegacion al alcanzar el fin del dataset
Yo podria perfectamente emular el comportamiento de una tabla web declarando
un ArrayBrowse y colocando unos controles TButton que "refresquen" el grid
ante su disparo, pero me gustaria saber si hay otra posibilidad que de la
sensación de continuidad en la navegacion.
En ese sentido pienso que el metodo skip del browse pudiera lanzar consultas
cuando se navegue por el dataset evidentemente con una clausula LIMIT. De
esta manera operan todas las tablas de consulta en la web aunque claro está,
no dan la sensacion de continuidad porque se requiere avanzar/regresar con
algun control para ejecutar la sentencia.
Nuevamente gracias por tu ayuda
Saludos
Williams Pacheco
"Jesus Semper" <jesus@semper-sl.com> wrote in message
news:4aa9f544$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> No me tomes muy en serio ya que no he trabajado con SQL y en XAiler estoy
> aprendiendo pero en MySQL, por ejemplo existe la clausula "SELECT ...
> LIMIT 15, 30" que te permite seleccionar los registros 15 al 30.
>
> Simultaneamente el objeto "TSQLQuery" veo que tiene la propiedad "cSelect"
> que debe permitirte indicar el select que deseas. En la documenteacion hay
> un ejemplo:
>
> WITH OBJECT oDataset
>
> :cSelect := "SELECT * FROM CLIENTS WHERE Name = ? AND Age = ? AND
> HIREDATE >= ?"
>
> :aSQLParams := { "John", 25, Ctod( "01/01/2008" ) }
>
> END WITH
>
>
> Si cada vez que el usuario pulsa arriba o abajo (o como lo quieras
> controlar) le cambias la select por otra con
> +15 o -15 registros (segun vaya arriba o abajo) deberia funcionar.
>
> ... si estoy equivocado, quien lo sepa que me corrija.
> Un saludo.
>
>
> "Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
> news:[email=4aa9508e@svctag-j7w3v3j....]4aa9508e@svctag-j7w3v3j....[/email]
>> Gracias Jesus por contestar
>>
>> Son tablas MySQL
>>
>> Tenemos una base de datos que maneja algunas tablas con aproximadamente
>> 1,000,000 de registros y otras hasta con 6 millones de registros que
>> funcionan con nuestra aplicacion Web desarrollada con PHP+MySQL
>>
>> Actualmente estamos desarrollando una aplicacion local con Xailer y
>> deseamos emular el mismo comportamiento que la aplicacion web tiene
>>
>> Saludos
>>
>> Williams Pacheco
>>
>> "Jesus Semper" <jesus@semper-sl.com> wrote in message
>> news:4aa948e3$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>> Creo que no tengo conocimiento para resolverlo pero no me queda muy
>>> claro.
>>> ¿Tus tablas estan en DBF normales o puedes usar (o usas) SQL o ADS?
>>>
>>>
>>>
>>> "Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
>>> news:4aa945ca$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>>> Estimados amigos
>>>>
>>>> Deseo antes que nada señalar que estoy de acuerdo en que el modelo SQL
>>>> no "deberia" ser usado para manejar browser de tablas grandes al estilo
>>>> DBF, no obstante, muchos de nuestros sistemas desarrollados en
>>>> PHP/MySQL actualmente en uso en la web hacen ese tipo de manejos
>>>> "paginando" los resultados obtenidos y requiero implementar esta
>>>> solucion en el sistema "local" desarrollado en Xailer, por esto mi
>>>> consulta sobre el tema.
>>>>
>>>> Me gustaria saber de que manera puedo montar un browse sobre una tabla
>>>> de 1,000,000 de registros aproximadamente donde la paginacion sea
>>>> transparente al usuario, es decir, sin que el usuario deba seleccionar
>>>> previamente rangos de informacion a través otros controles, mas bien me
>>>> gustaria colocar un limite interno para manipular la consulta.
>>>>
>>>> De lograr este objetivo entiendo que podria simplificar y acelerar la
>>>> velocidad de mis consultas sustancialmente puesto que en los browser de
>>>> mi aplicacion usualmente no presento mas de 15 filas a la vez. Si una
>>>> consulta me arrojara 200 filas pudiera implementar el mismo esquema que
>>>> con una tabla grande, paginando mi resultado en conjuntos de 15 o 20
>>>> filas y cada vez que el usuario intente hacer un skip sobre el final
>>>> del dataset, hacer el query de los proximos registros... no se si me
>>>> explico bien.
>>>>
>>>> En otras palabras, pretendo emular el comportamiento de otras
>>>> herramientas especializadas en el manejo de tablas [x]SQL tales como
>>>> MySQLFront o Navicat.
>>>>
>>>> Gracias por su ayuda y comentarios...
>>>>
>>>> --
>>>> Saludos
>>>>
>>>> Williams Pacheco
>>>
>>>
>>
>
>
PEDRO DE LEON RODAS[3]
Mensajes: 266
Registrado: Mar Oct 28, 2008 4:41 am

Browse en tablas grandes

Mensaje por PEDRO DE LEON RODAS[3] »

Williams Pacheco, saludos.
Creo que tienes la misma duda que tuve yo cuando empezé a trabajar con mysql
y Xailer.
Queria mostrar 1,000,000 de registros en un Grid (TBBROWSE) y se tardaba
aproximadamente como 10 minutos.
Hice preguntas en este foro y varios compañeros me respondieron: Solo obtén
la información que requieres y trata de usar lo menos posible el * en tus
selects.
Bueno, asi lo hice y hasta ahorita ya implemente un sistema donde manejan
mas de 1,000,000 de registros y mi sistema funciona rapido.
¿ Como lo hice ?
No cargo al principio del formulario informacion en TBBROWSE.
Ejemplo: Si tienes 2 tablas una que diga clientes y otra ventas, puedes
hacer lo siguiente
En un objeto Tedit o TmaskEdit con nombre numero_cliente puedes hacer lo
siguiente, claro antes debes tener en tu formulario tu objeto (TBROWSE) ya
con sus propiedades bien definidas.
Asi tambien debes tener tambien tus TSqlQuery y tu TBBROWSE debe tener en
odataset el nombre de tu TSqlquery.
Vamos a ver esto:
Mi TSqlQuery se llama ::VENTAS
Y mi TBBROWSE se llama ::GRID
En este caso el campo deel numero de cliente sera numerico ne Mysql (INT)
con una longitud de 6.
Ahora pasamos a obtener la consulta y automaticamente se cargara en el GRID
METHOD Numero_clienteKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_RECURSOS
If nKey=13 .or. nKey=9
::Ventas:lOpen=.f. ////Cierro la consulta
::Ventas:cSelect="Select numero_factura,fecha_Venta,Subtotal,Iva,Totales
from facturas where numero_cliente='"+Str(::Numero_cliente:Value,6)+"' "
::Ventas:lOpen=.t.
::Grid:Refresh() /// esto es para que se actualize la vista del grid
::Grid:Setfocus()
Return .t.
Endif
RETURN Nil
Espero que sea lo que tu quieres saber o espero haberte entendido.
NOTA.
Si quieres rapidez con Xailer y Mysql evita cargar desde el
principio o sea desde inicio del formulario todos los registros de las
tablas
Nuevamente, saludos.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9440
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Browse en tablas grandes

Mensaje por ignacio »

Williams,
La mejor forma de hacerlo es utilizando la cláusula LIMIT y OFFSET.
Un saludo
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
news:[email=4aaa74da@svctag-j7w3v3j....]4aaa74da@svctag-j7w3v3j....[/email]
> Jesus
>
> Nuevamente gracias por tu atencion sobre este tema
>
> Como dije en mi anterior post, trabajamos con MySQL y conocemos bien su
> comportamiento ya que desarrollamos aplicaciones web con PHP y esta base
> de datos desde hace mucho tiempo
>
> Efectivamente la clausula LIMIT como indicas se utiliza con fines de
> paginacion en nuestros sistemas. El problema radica en que para ponerla en
> practica en Xailer requiero conocer como manejar algunos eventos que se
> disparan en la navegacion al alcanzar el fin del dataset
>
> Yo podria perfectamente emular el comportamiento de una tabla web
> declarando un ArrayBrowse y colocando unos controles TButton que
> "refresquen" el grid ante su disparo, pero me gustaria saber si hay otra
> posibilidad que de la sensación de continuidad en la navegacion.
>
> En ese sentido pienso que el metodo skip del browse pudiera lanzar
> consultas cuando se navegue por el dataset evidentemente con una clausula
> LIMIT. De esta manera operan todas las tablas de consulta en la web aunque
> claro está, no dan la sensacion de continuidad porque se requiere
> avanzar/regresar con algun control para ejecutar la sentencia.
>
> Nuevamente gracias por tu ayuda
>
> Saludos
>
> Williams Pacheco
>
>
> "Jesus Semper" <jesus@semper-sl.com> wrote in message
> news:4aa9f544$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> No me tomes muy en serio ya que no he trabajado con SQL y en XAiler estoy
>> aprendiendo pero en MySQL, por ejemplo existe la clausula "SELECT ...
>> LIMIT 15, 30" que te permite seleccionar los registros 15 al 30.
>>
>> Simultaneamente el objeto "TSQLQuery" veo que tiene la propiedad
>> "cSelect" que debe permitirte indicar el select que deseas. En la
>> documenteacion hay un ejemplo:
>>
>> WITH OBJECT oDataset
>>
>> :cSelect := "SELECT * FROM CLIENTS WHERE Name = ? AND Age = ?
>> AND HIREDATE >= ?"
>>
>> :aSQLParams := { "John", 25, Ctod( "01/01/2008" ) }
>>
>> END WITH
>>
>>
>> Si cada vez que el usuario pulsa arriba o abajo (o como lo quieras
>> controlar) le cambias la select por otra con
>> +15 o -15 registros (segun vaya arriba o abajo) deberia funcionar.
>>
>> ... si estoy equivocado, quien lo sepa que me corrija.
>> Un saludo.
>>
>>
>> "Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
>> news:[email=4aa9508e@svctag-j7w3v3j....]4aa9508e@svctag-j7w3v3j....[/email]
>>> Gracias Jesus por contestar
>>>
>>> Son tablas MySQL
>>>
>>> Tenemos una base de datos que maneja algunas tablas con aproximadamente
>>> 1,000,000 de registros y otras hasta con 6 millones de registros que
>>> funcionan con nuestra aplicacion Web desarrollada con PHP+MySQL
>>>
>>> Actualmente estamos desarrollando una aplicacion local con Xailer y
>>> deseamos emular el mismo comportamiento que la aplicacion web tiene
>>>
>>> Saludos
>>>
>>> Williams Pacheco
>>>
>>> "Jesus Semper" <jesus@semper-sl.com> wrote in message
>>> news:4aa948e3$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>>> Creo que no tengo conocimiento para resolverlo pero no me queda muy
>>>> claro.
>>>> ¿Tus tablas estan en DBF normales o puedes usar (o usas) SQL o ADS?
>>>>
>>>>
>>>>
>>>> "Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
>>>> news:4aa945ca$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>>>> Estimados amigos
>>>>>
>>>>> Deseo antes que nada señalar que estoy de acuerdo en que el modelo SQL
>>>>> no "deberia" ser usado para manejar browser de tablas grandes al
>>>>> estilo DBF, no obstante, muchos de nuestros sistemas desarrollados en
>>>>> PHP/MySQL actualmente en uso en la web hacen ese tipo de manejos
>>>>> "paginando" los resultados obtenidos y requiero implementar esta
>>>>> solucion en el sistema "local" desarrollado en Xailer, por esto mi
>>>>> consulta sobre el tema.
>>>>>
>>>>> Me gustaria saber de que manera puedo montar un browse sobre una tabla
>>>>> de 1,000,000 de registros aproximadamente donde la paginacion sea
>>>>> transparente al usuario, es decir, sin que el usuario deba seleccionar
>>>>> previamente rangos de informacion a través otros controles, mas bien
>>>>> me gustaria colocar un limite interno para manipular la consulta.
>>>>>
>>>>> De lograr este objetivo entiendo que podria simplificar y acelerar la
>>>>> velocidad de mis consultas sustancialmente puesto que en los browser
>>>>> de mi aplicacion usualmente no presento mas de 15 filas a la vez. Si
>>>>> una consulta me arrojara 200 filas pudiera implementar el mismo
>>>>> esquema que con una tabla grande, paginando mi resultado en conjuntos
>>>>> de 15 o 20 filas y cada vez que el usuario intente hacer un skip sobre
>>>>> el final del dataset, hacer el query de los proximos registros... no
>>>>> se si me explico bien.
>>>>>
>>>>> En otras palabras, pretendo emular el comportamiento de otras
>>>>> herramientas especializadas en el manejo de tablas [x]SQL tales como
>>>>> MySQLFront o Navicat.
>>>>>
>>>>> Gracias por su ayuda y comentarios...
>>>>>
>>>>> --
>>>>> Saludos
>>>>>
>>>>> Williams Pacheco
>>>>
>>>>
>>>
>>
>>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Williams Pacheco
Mensajes: 165
Registrado: Mié Jul 08, 2009 5:26 pm

Browse en tablas grandes

Mensaje por Williams Pacheco »

Gracias Ignacio
Hago mis pruebas y te dejo saber ...
Saludos
"Ignacio Ortiz de Zúñiga" <NoNameToAvoidSpam@xailer.com> wrote in message
news:4aadfe57$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Williams,
>
> La mejor forma de hacerlo es utilizando la cláusula LIMIT y OFFSET.
>
> Un saludo
>
> --
> Ignacio Ortiz de Zúñiga
> Xailer support / Soporte de Xailer
> http://www.xailer.com
> http://www.xailer.info
> "Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
> news:[email=4aaa74da@svctag-j7w3v3j....]4aaa74da@svctag-j7w3v3j....[/email]
>> Jesus
>>
>> Nuevamente gracias por tu atencion sobre este tema
>>
>> Como dije en mi anterior post, trabajamos con MySQL y conocemos bien su
>> comportamiento ya que desarrollamos aplicaciones web con PHP y esta base
>> de datos desde hace mucho tiempo
>>
>> Efectivamente la clausula LIMIT como indicas se utiliza con fines de
>> paginacion en nuestros sistemas. El problema radica en que para ponerla
>> en practica en Xailer requiero conocer como manejar algunos eventos que
>> se disparan en la navegacion al alcanzar el fin del dataset
>>
>> Yo podria perfectamente emular el comportamiento de una tabla web
>> declarando un ArrayBrowse y colocando unos controles TButton que
>> "refresquen" el grid ante su disparo, pero me gustaria saber si hay otra
>> posibilidad que de la sensación de continuidad en la navegacion.
>>
>> En ese sentido pienso que el metodo skip del browse pudiera lanzar
>> consultas cuando se navegue por el dataset evidentemente con una clausula
>> LIMIT. De esta manera operan todas las tablas de consulta en la web
>> aunque claro está, no dan la sensacion de continuidad porque se requiere
>> avanzar/regresar con algun control para ejecutar la sentencia.
>>
>> Nuevamente gracias por tu ayuda
>>
>> Saludos
>>
>> Williams Pacheco
>>
>>
>> "Jesus Semper" <jesus@semper-sl.com> wrote in message
>> news:4aa9f544$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>> No me tomes muy en serio ya que no he trabajado con SQL y en XAiler
>>> estoy aprendiendo pero en MySQL, por ejemplo existe la clausula "SELECT
>>> ... LIMIT 15, 30" que te permite seleccionar los registros 15 al 30.
>>>
>>> Simultaneamente el objeto "TSQLQuery" veo que tiene la propiedad
>>> "cSelect" que debe permitirte indicar el select que deseas. En la
>>> documenteacion hay un ejemplo:
>>>
>>> WITH OBJECT oDataset
>>>
>>> :cSelect := "SELECT * FROM CLIENTS WHERE Name = ? AND Age = ?
>>> AND HIREDATE >= ?"
>>>
>>> :aSQLParams := { "John", 25, Ctod( "01/01/2008" ) }
>>>
>>> END WITH
>>>
>>>
>>> Si cada vez que el usuario pulsa arriba o abajo (o como lo quieras
>>> controlar) le cambias la select por otra con
>>> +15 o -15 registros (segun vaya arriba o abajo) deberia funcionar.
>>>
>>> ... si estoy equivocado, quien lo sepa que me corrija.
>>> Un saludo.
>>>
>>>
>>> "Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
>>> news:[email=4aa9508e@svctag-j7w3v3j....]4aa9508e@svctag-j7w3v3j....[/email]
>>>> Gracias Jesus por contestar
>>>>
>>>> Son tablas MySQL
>>>>
>>>> Tenemos una base de datos que maneja algunas tablas con aproximadamente
>>>> 1,000,000 de registros y otras hasta con 6 millones de registros que
>>>> funcionan con nuestra aplicacion Web desarrollada con PHP+MySQL
>>>>
>>>> Actualmente estamos desarrollando una aplicacion local con Xailer y
>>>> deseamos emular el mismo comportamiento que la aplicacion web tiene
>>>>
>>>> Saludos
>>>>
>>>> Williams Pacheco
>>>>
>>>> "Jesus Semper" <jesus@semper-sl.com> wrote in message
>>>> news:4aa948e3$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>>>> Creo que no tengo conocimiento para resolverlo pero no me queda muy
>>>>> claro.
>>>>> ¿Tus tablas estan en DBF normales o puedes usar (o usas) SQL o ADS?
>>>>>
>>>>>
>>>>>
>>>>> "Williams Pacheco" <info@bpdominicana.com> escribió en el mensaje
>>>>> news:4aa945ca$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>>>>> Estimados amigos
>>>>>>
>>>>>> Deseo antes que nada señalar que estoy de acuerdo en que el modelo
>>>>>> SQL no "deberia" ser usado para manejar browser de tablas grandes al
>>>>>> estilo DBF, no obstante, muchos de nuestros sistemas desarrollados en
>>>>>> PHP/MySQL actualmente en uso en la web hacen ese tipo de manejos
>>>>>> "paginando" los resultados obtenidos y requiero implementar esta
>>>>>> solucion en el sistema "local" desarrollado en Xailer, por esto mi
>>>>>> consulta sobre el tema.
>>>>>>
>>>>>> Me gustaria saber de que manera puedo montar un browse sobre una
>>>>>> tabla de 1,000,000 de registros aproximadamente donde la paginacion
>>>>>> sea transparente al usuario, es decir, sin que el usuario deba
>>>>>> seleccionar previamente rangos de informacion a través otros
>>>>>> controles, mas bien me gustaria colocar un limite interno para
>>>>>> manipular la consulta.
>>>>>>
>>>>>> De lograr este objetivo entiendo que podria simplificar y acelerar la
>>>>>> velocidad de mis consultas sustancialmente puesto que en los browser
>>>>>> de mi aplicacion usualmente no presento mas de 15 filas a la vez. Si
>>>>>> una consulta me arrojara 200 filas pudiera implementar el mismo
>>>>>> esquema que con una tabla grande, paginando mi resultado en conjuntos
>>>>>> de 15 o 20 filas y cada vez que el usuario intente hacer un skip
>>>>>> sobre el final del dataset, hacer el query de los proximos
>>>>>> registros... no se si me explico bien.
>>>>>>
>>>>>> En otras palabras, pretendo emular el comportamiento de otras
>>>>>> herramientas especializadas en el manejo de tablas [x]SQL tales como
>>>>>> MySQLFront o Navicat.
>>>>>>
>>>>>> Gracias por su ayuda y comentarios...
>>>>>>
>>>>>> --
>>>>>> Saludos
>>>>>>
>>>>>> Williams Pacheco
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>
Responder