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.

Duda com Mysql

Foro público de Xailer en español
Andres Hocevar
Mensajes: 141
Registrado: Mar Sep 18, 2007 3:30 pm

Duda com Mysql

Mensaje por Andres Hocevar »

Primero que todo Feliz 2011 a todos!!!!
Mi duda es con respecto al uso de los datasets con Mysql, entiendo que
el metodo KeyCount() devuelve el nro de filas en el dataset, al ejecutar
el siguiente codigo:
mTotal := 9096 // SELECT COUNT(*) FROM sinv
mHasta := 20
mDESDE := 0
mTXT := ' SELECT DE SQL Reg Total KeyCount'
FOR i := 1 TO 100
IF ::oDataSet:KeyNo = mHasta
IF mDesde+mHasta < mTotal
mDesde += mHasta
::oDataSet:lOpen := .F.
::oDataSet:Cargo:SetLimit( mDesde, mHasta )
mSQL := ::oDataSet:Cargo:BuildSql()
::oDataSet:cSelect := mSQL
::oDataSet:lOpen := .T.
ENDIF
ELSE
::oDataSet:nSkip()
ENDIF
mTXT+=mSQL+STR(::oDataSet:RecNo())+STR(mDESDE)+STR(mTOTAL)+S TR(::oDataSet:KeyCount())
SLEEP(90)
NEXT
MEMOWRIT('salida.txt',mTXT)
No se supone que ::oDataSet:KeyCount deberia ser simpre 20 (LIMIT nnn,
20) lo mismo pasa con ::oDataSet:RecCount()
salida.txt
----------------------------------------------- ------ -------- --------
SELECT DE SQL Reg Total KeyCount
----------------------------------------------- ------ -------- --------
SELECT * FROM sinv ORDER BY codigo LIMIT 0, 20 1 9,096 20
SELECT * FROM sinv ORDER BY codigo LIMIT 0, 20 2 9,096 20
. . . . . . . . .
. . . . . . . . .
SELECT * FROM sinv ORDER BY codigo LIMIT 0, 20 20 9,096 20
SELECT * FROM sinv ORDER BY codigo LIMIT 20, 20 21 9,096 20
. . . . . . . . .
. . . . . . . . .
SELECT * FROM sinv ORDER BY codigo LIMIT 20, 20 39 9,096 20
SELECT * FROM sinv ORDER BY codigo LIMIT 20, 20 40 9,096 20
SELECT * FROM sinv ORDER BY codigo LIMIT 40, 20 41 9,096 40
SELECT * FROM sinv ORDER BY codigo LIMIT 40, 20 42 9,096 40
. . . . . . . . .
. . . . . . . . .
SELECT * FROM sinv ORDER BY codigo LIMIT 40, 20 60 9,096 40
SELECT * FROM sinv ORDER BY codigo LIMIT 60, 20 61 9,096 60
. . . . . . . . .
. . . . . . . . .
SELECT * FROM sinv ORDER BY codigo LIMIT 80, 20 81 9,096 80
. . . . . . . . .
. . . . . . . . .
SELECT * FROM sinv ORDER BY codigo LIMIT 80, 20 100 9,096 80
SELECT * FROM sinv ORDER BY codigo LIMIT 100, 20 101 9,096 100
Responder