Saludos Estimados,
Tengo un programa que sirve de consulta a una tabla MySQL, no la lea como tabla sino la bajo a un arreglo y ese es el que muestro (usando SQLLIB) no hay ningún problema cuando son 300, 1000, 3000 líneas, pero cuando quise revisar una tabla de 250,000 registros se demora tanto que sigo esperando.
Tengo consultas con TsBrowse y TwBrowse en otros programas con medio millón de registros y si bien "no son muy rapidas" si las presenta bien, pero con xBrowse hay un problema de cantidad de registros ?? o quizás estoy haciendo algo mal, alguna idea ...
Gracias
xBrowse cantidad de registros maximo
-
- Posts: 552
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Been thanked: 3 times
- Contact:
xBrowse cantidad de registros maximo
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
- joseluisysturiz
- Posts: 2064
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: xBrowse cantidad de registros maximo
Cuando una consulta es de una sola tabla, mas seguro te la cargue rapido, pero si es una tabla relacionada con varias tablas y esta tiene que hacer algunos calculos, te va tardar bastante, tambien dependera si estas haciendo la consulta de forma localhost o si se esta conectando a otro pc, lo que no entiendo es porque no muestras directamente la consulta en el xbrose din pasarla a un array.? y saber de que forma estas cargando el array si con AADD o con FILLARRAY directamente desde la consulta, si pones algo de codigo seguro te podremos ayudar mas, saludos... 

Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
- Willi Quintana
- Posts: 1025
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: xBrowse cantidad de registros maximo
Hola Enrrique,
Uso tablas de MySQL con TWBrowse, y los datos los cargo a un arreglo, y mas o menos bien, uso TDolphin,
uso esta funcio para cargar la data al array:
Uso tablas de MySQL con TWBrowse, y los datos los cargo a un arreglo, y mas o menos bien, uso TDolphin,
uso esta funcio para cargar la data al array:
Code: Select all | Expand
//--------------------------------------------------------------------------------------------------------
aDatos := {}
aDatos := SQLQryA(oMySQL, aDatos, "SELECT * from registros")
REDEFINE LISTBOX oLbx ;
FIELDS aDatos[oLbx:nAt ,1] ;
...
..
.
//-----------------------------------------------------------------------
Function SQLQryA(oMySQL, aObj, cObj)
local nLen, nCont, oObj, aTmp, nLenG, nPos, aDat, cVType, cCampo, nCont2, nLen2
local cFile
DEFAULT lRef := .f.
cFile := "NOSQL_.TXT"//cObj := LOWER(cObj)
aObj := {}
aTmp := {}
TRY
If oMySQL:lError
MsgInfo("La Conexión No Existe...","Cerrando")
Quit
EndIF
CATCH
MsgInfo("La Conexión No Existe...","Cerrando")
Quit
END
oObj := oMySQL:Query(cObj)
nLenG := oObj:RecCount()
nLen := oObj:FCount()
CURSORWAIT()
IF nLenG = 0 // si no hat datos lo llenamos con datos vacios
aObj := ARRAY(1, nLen)
FOR nCont := 1 TO nLen
TRY
cVType := oObj:FieldType(nCont)
CATCH
Msginfo("Error Interno en MyCampo()", "Error")
Quit
END
DO CASE
CASE cVType = "N"
cCampo := 0
CASE cVType = "C"
cCampo := ""
CASE cVType = "M"
cCampo := ""
CASE cVType = "L"
cCampo := ".f."
CASE cVType = "D"
cCampo := CTOD(" / / /")
OTHER
cCampo := ""
ENDCASE
aObj[1, nCont] := cCampo
NEXT nCont
Else
aObj := {}
aObj := ARRAY(nLenG, nLen)
nPos := 1
CURSORWAIT()
WHILE !oObj:EOF()
FOR nCont := 1 TO nLen
aObj[nPos, nCont] := oObj:FieldGet(nCont)
NEXT nCont
nPos++
If INT(nPos / 100) * 100 = nPos
CURSORWAIT()
SysRefresh()
EndIf
oObj:Skip()
ENDDO
CURSORARROW()
EndIf
MyClose(oObj)
CATCH
MsgStop("Error en la Conexión al Servidor","Aplicación Cerrada")
Quit
END
Return(aObj)
-
- Posts: 552
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Been thanked: 3 times
- Contact:
Re: xBrowse cantidad de registros maximo
Gracias por contestar
Jose Luis, asi lo uso, el arreglo es un Select MySQL, uso SQLLIB y con TwBrowse y TsBrowse, si presenta los miles de registros, mi pregunta es sobre TxBrowse
cCommand:="SELECT codven,fecven,coddoc,numdoc,refere,codcli,nomcli,tipmon,totven,totigv,totnet,status,motnota,posted,fecdes,usrsta,codzon,numenv,numbaj,nroanx,sql_rowid FROM "+regvta+" WHERE "+iif(empty(cFilGui),"",cFilGui)+" (SUBSTRING(numdoc,1,1)='F' OR SUBSTRING(numdoc,1,1)='B') ORDER BY coddoc,numdoc"
Use SQL (cCommand) ALIAS guicab VIA "MYSQL"
Y aquí hago el xBrowse
@ 0,0 xbrowse oBrw of oWnd ;
header "Integrador","Fecha","Tipo","Numero","NumRef","Codigo","Razon Social","Mon","Valor_Venta","IGV","Precio_Venta","Motivo","Enviado","MailEnv","Baja","Tk Envio","Tk Baja","Consol" ;
columns "codven","fecven", "coddoc", "numdoc", "refere", "codcli", "nomcli", "tipmon", "totven", "totigv", "totnet","motnota","posted","fecdes","codzon","numenv","numbaj","nroanx" ;
colsizes 60,70,30,90,105,80,350,30,85,85,85,40,45,70,40,100,100,40 ;
picture ,,"99",,,,,"!","999,999,999.99","9,999,999.99","999,999,999.99",,"!",,"!" ;
ALIAS "GuiCab" FOOTERS LINES CELL NOBORDER CENTER
WITH OBJECT oBrw
:nMarqueeStyle := 4
:bLDblClick = { || (verpdf(oBrw), oBrw:refresh()) }
:bKeyDown = { | nKey | if(nKey!=VK_RETURN, Nil, (verpdf(oBrw), oBrw:refresh()) ) }
:bClrSel := {|| { CLR_BLACK, nRGB( 192,192,192 )}}
:bClrSelFocus := {|| { CLR_WHITE, nRGB( 128,128,255 )}}
END
oBrw:bPopUp := { |o| ColMenu( o, oBrw, cEmpMG, cEmpMC, cRutDel ) }
Willy, gracias con TwBrowse si funciona, relativamente normal, por eso mi consulta si xBrowse tiene algún problema con miles de registros (en este caso 250,000)
Gracias
Jose Luis, asi lo uso, el arreglo es un Select MySQL, uso SQLLIB y con TwBrowse y TsBrowse, si presenta los miles de registros, mi pregunta es sobre TxBrowse
cCommand:="SELECT codven,fecven,coddoc,numdoc,refere,codcli,nomcli,tipmon,totven,totigv,totnet,status,motnota,posted,fecdes,usrsta,codzon,numenv,numbaj,nroanx,sql_rowid FROM "+regvta+" WHERE "+iif(empty(cFilGui),"",cFilGui)+" (SUBSTRING(numdoc,1,1)='F' OR SUBSTRING(numdoc,1,1)='B') ORDER BY coddoc,numdoc"
Use SQL (cCommand) ALIAS guicab VIA "MYSQL"
Y aquí hago el xBrowse
@ 0,0 xbrowse oBrw of oWnd ;
header "Integrador","Fecha","Tipo","Numero","NumRef","Codigo","Razon Social","Mon","Valor_Venta","IGV","Precio_Venta","Motivo","Enviado","MailEnv","Baja","Tk Envio","Tk Baja","Consol" ;
columns "codven","fecven", "coddoc", "numdoc", "refere", "codcli", "nomcli", "tipmon", "totven", "totigv", "totnet","motnota","posted","fecdes","codzon","numenv","numbaj","nroanx" ;
colsizes 60,70,30,90,105,80,350,30,85,85,85,40,45,70,40,100,100,40 ;
picture ,,"99",,,,,"!","999,999,999.99","9,999,999.99","999,999,999.99",,"!",,"!" ;
ALIAS "GuiCab" FOOTERS LINES CELL NOBORDER CENTER
WITH OBJECT oBrw
:nMarqueeStyle := 4
:bLDblClick = { || (verpdf(oBrw), oBrw:refresh()) }
:bKeyDown = { | nKey | if(nKey!=VK_RETURN, Nil, (verpdf(oBrw), oBrw:refresh()) ) }
:bClrSel := {|| { CLR_BLACK, nRGB( 192,192,192 )}}
:bClrSelFocus := {|| { CLR_WHITE, nRGB( 128,128,255 )}}
END
oBrw:bPopUp := { |o| ColMenu( o, oBrw, cEmpMG, cEmpMC, cRutDel ) }
Willy, gracias con TwBrowse si funciona, relativamente normal, por eso mi consulta si xBrowse tiene algún problema con miles de registros (en este caso 250,000)
Gracias
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m