TxBrowse y ADS query - SOLUCIONADO
Posted: Tue Jul 17, 2012 12:15 pm
Buen día,
Uso ADS y, hasta ahora, luego de realizar un query a la DBF, lo que hacía era pasar a un array lo obtenido del query (en mi caso en sqlarea).
Código simplificado:
Esto funciona bien ya que luego en el xBrowse hago un "oBrw:SetArray( aArray , .t. )" y le asigno el array para hojear
Ahora se me presenta que los datos obtenidos de una DBF (siempre con un query), son muchos y el query es respondido casi en forma instantánea quedando los datos en "sqlarea", tal como lo compruebo con este código simplificado en el que me mustra los diez primeros datos:
Pero como decía antes, como los datos tomados son muchos (más de 10000), el armado del array tarda muchísimo (casi dos minutos).
Por esto consulto: ¿hay alguna forma en que pueda "asignarle" el resultado del query en forma directa al xBrowse?. Como si fuese una oDBF o similar para de esta manera evitar el armado del array con el resultado del query que es lo que más demora la ejecución del xBrowse.
Gracias.
Rolando
Uso ADS y, hasta ahora, luego de realizar un query a la DBF, lo que hacía era pasar a un array lo obtenido del query (en mi caso en sqlarea).
Código simplificado:
- Code: Select all Expand view
- if ADSExecuteSQLDirect( cConsulta1 )
sqlarea->(dbgotop())
do while sqlarea->(!eof())
Aadd(aArray , {alltrim(str(sqlarea->TALON)) , alltrim(sqlarea->NOMBRE)} )
sqlarea->( DbSkip())
enddo
xBrowse(aArray)
Esto funciona bien ya que luego en el xBrowse hago un "oBrw:SetArray( aArray , .t. )" y le asigno el array para hojear
Ahora se me presenta que los datos obtenidos de una DBF (siempre con un query), son muchos y el query es respondido casi en forma instantánea quedando los datos en "sqlarea", tal como lo compruebo con este código simplificado en el que me mustra los diez primeros datos:
- Code: Select all Expand view
- sqlarea->(dbgotop())
for f = 1 to 10
msginfo(sqlarea->TALON+" "+sqlarea->NOMBRE)
sqlarea->( DbSkip())
next
Pero como decía antes, como los datos tomados son muchos (más de 10000), el armado del array tarda muchísimo (casi dos minutos).
Por esto consulto: ¿hay alguna forma en que pueda "asignarle" el resultado del query en forma directa al xBrowse?. Como si fuese una oDBF o similar para de esta manera evitar el armado del array con el resultado del query que es lo que más demora la ejecución del xBrowse.
Gracias.
Rolando