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.
Problemas al recorres una dbf.
Problemas al recorres una dbf.
Hola,
Tenemos el siguiente código (estoy utilizando advantage y ficheros adt)
=======================
With Object ::oDbfLinfac
:OrdSetFocus(0)
:GoTop()
Do WHile !:Eof()
LogDebug(:Factura,:Recno())
If :Factura = nClave
:Delete()
LogDebug( "DELETE", :Recno() )
endif
:Skip()
Enddo
End
======================
Pues bien, cada vez que hace un delete, se me va al principio de la tabla.
Esta es la salida que da el debug:
Estoy borrando las líneas de la factura 25. en la posición #19 encuentra
una línea de dicha factura, la borra, y el la #20 me da el recno 1, en lugar
del 104 que es el siguiente
#1: 48 1
#2: 5 2
#3: 31 3
#4: 7 4
#5: 10 69
#6: 63 83
#7: 63 84
#8: 62 85
#9: 11 88
#10: 12 89
#11: 9 93
#12: 9 94
#13: 30 95
#14: 48 96
#15: 16 98
#16: 30 99
#17: 30 100
#18: 31 101
#19: 25 103
#20: DELETE 1
#21: 5 2
#22: 31 3
#23: 7 4
#24: 10 69
#25: 63 83
#26: 63 84
#27: 62 85
#28: 11 88
#29: 12 89
#30: 9 93
#31: 9 94
#32: 30 95
#33: 48 96
#34: 16 98
#35: 30 99
#36: 30 100
#37: 31 101
#38: 25 104
#39: DELETE 1
#40: 5 2
#41: 31 3
#42: 7 4
#43: 10 69
En cambio, hay veces que casi lo hace bien. fijaros que el al posición #21
sí ha saltado bien.
#1: 48 1
#2: 5 2
#3: 7 4
#4: 10 69
#5: 63 83
#6: 63 84
#7: 62 85
#8: 11 88
#9: 12 89
#10: 9 93
#11: DELETE 1
#12: 5 2
#13: 7 4
#14: 10 69
#15: 63 83
#16: 63 84
#17: 62 85
#18: 11 88
#19: 12 89
#20: 9 94
#21: DELETE 106
#22: 23 114
#23: 51 122
#24: 49 125
#25: 48 126
#26: 19 149
#27: 7 150
#28: 48 159
Si en lugar de los datasets lo hago "a pelo" funciona siempre bien
=====================
SELECT( ::ODBFLINFAC:ALIAS())
SET ORDER TO 0
GO TOP
DO WHILE !EOF()
LOGDEBUG(FACTURA,RECNO())
IF FACTURA=NCLAVE
IF RLOCK()
DELETE
LOGDEBUG("DELETE",RECNO())
UNLOCK
ENDIF
ENDIF
SKIP
ENDDO
===================
Fijaros que la linea #22 se queda "quieta" en el registro borrado hasta que
hacemos el skip
#1: 48 1
#2: 5 2
#3: 7 4
#4: 63 84
#5: 11 88
#6: 12 89
#7: 48 96
#8: 16 98
#9: 19 106
#10: 23 114
#11: 51 122
#12: 49 125
#13: 48 126
#14: 19 149
#15: 7 150
#16: 48 159
#17: 4 161
#18: 17 162
#19: 48 243
#20: 46 244
#21: 37 263
#22: DELETE 263
#23: 37 264
#24: DELETE 264
#25: 48 265
#26: 47 267
Creo que :delete() hace directamente el skip, lo cual, aunque no se ajusta
estrictamente a lo que estamos acostumbrados, no tiene por qué dar estos
resultados.
Creo que este problema está relacionado con uno que comenté hace un tiempo
sobre las tablas advantage y el reusedel.
Desde la versión pre5 de xailer, creo recordar, TODAS las tablas adt hacen
el reusedel aunque nosotros le digamos que no lo utilice.
Es posible que al borrar un registro y estar el reusedel activo, ponga todos
los campos a 0, lo borre, haga un skip y por eso nos encontramos con el puntero
en top en lugar de en el siguiente registro al borrado.
¿qué os parece?
Un saludico,
Fredy
PD: ¿alguien está usando xharbour en modo consola o con fivewin y ha detectado
algún problema similar con los ReuseDel?
Tenemos el siguiente código (estoy utilizando advantage y ficheros adt)
=======================
With Object ::oDbfLinfac
:OrdSetFocus(0)
:GoTop()
Do WHile !:Eof()
LogDebug(:Factura,:Recno())
If :Factura = nClave
:Delete()
LogDebug( "DELETE", :Recno() )
endif
:Skip()
Enddo
End
======================
Pues bien, cada vez que hace un delete, se me va al principio de la tabla.
Esta es la salida que da el debug:
Estoy borrando las líneas de la factura 25. en la posición #19 encuentra
una línea de dicha factura, la borra, y el la #20 me da el recno 1, en lugar
del 104 que es el siguiente
#1: 48 1
#2: 5 2
#3: 31 3
#4: 7 4
#5: 10 69
#6: 63 83
#7: 63 84
#8: 62 85
#9: 11 88
#10: 12 89
#11: 9 93
#12: 9 94
#13: 30 95
#14: 48 96
#15: 16 98
#16: 30 99
#17: 30 100
#18: 31 101
#19: 25 103
#20: DELETE 1
#21: 5 2
#22: 31 3
#23: 7 4
#24: 10 69
#25: 63 83
#26: 63 84
#27: 62 85
#28: 11 88
#29: 12 89
#30: 9 93
#31: 9 94
#32: 30 95
#33: 48 96
#34: 16 98
#35: 30 99
#36: 30 100
#37: 31 101
#38: 25 104
#39: DELETE 1
#40: 5 2
#41: 31 3
#42: 7 4
#43: 10 69
En cambio, hay veces que casi lo hace bien. fijaros que el al posición #21
sí ha saltado bien.
#1: 48 1
#2: 5 2
#3: 7 4
#4: 10 69
#5: 63 83
#6: 63 84
#7: 62 85
#8: 11 88
#9: 12 89
#10: 9 93
#11: DELETE 1
#12: 5 2
#13: 7 4
#14: 10 69
#15: 63 83
#16: 63 84
#17: 62 85
#18: 11 88
#19: 12 89
#20: 9 94
#21: DELETE 106
#22: 23 114
#23: 51 122
#24: 49 125
#25: 48 126
#26: 19 149
#27: 7 150
#28: 48 159
Si en lugar de los datasets lo hago "a pelo" funciona siempre bien
=====================
SELECT( ::ODBFLINFAC:ALIAS())
SET ORDER TO 0
GO TOP
DO WHILE !EOF()
LOGDEBUG(FACTURA,RECNO())
IF FACTURA=NCLAVE
IF RLOCK()
DELETE
LOGDEBUG("DELETE",RECNO())
UNLOCK
ENDIF
ENDIF
SKIP
ENDDO
===================
Fijaros que la linea #22 se queda "quieta" en el registro borrado hasta que
hacemos el skip
#1: 48 1
#2: 5 2
#3: 7 4
#4: 63 84
#5: 11 88
#6: 12 89
#7: 48 96
#8: 16 98
#9: 19 106
#10: 23 114
#11: 51 122
#12: 49 125
#13: 48 126
#14: 19 149
#15: 7 150
#16: 48 159
#17: 4 161
#18: 17 162
#19: 48 243
#20: 46 244
#21: 37 263
#22: DELETE 263
#23: 37 264
#24: DELETE 264
#25: 48 265
#26: 47 267
Creo que :delete() hace directamente el skip, lo cual, aunque no se ajusta
estrictamente a lo que estamos acostumbrados, no tiene por qué dar estos
resultados.
Creo que este problema está relacionado con uno que comenté hace un tiempo
sobre las tablas advantage y el reusedel.
Desde la versión pre5 de xailer, creo recordar, TODAS las tablas adt hacen
el reusedel aunque nosotros le digamos que no lo utilice.
Es posible que al borrar un registro y estar el reusedel activo, ponga todos
los campos a 0, lo borre, haga un skip y por eso nos encontramos con el puntero
en top en lugar de en el siguiente registro al borrado.
¿qué os parece?
Un saludico,
Fredy
PD: ¿alguien está usando xharbour en modo consola o con fivewin y ha detectado
algún problema similar con los ReuseDel?
-
- Mensajes: 203
- Registrado: Vie Abr 01, 2005 9:05 am
Problemas al recorres una dbf.
Fredy,
Eso me paso en una ocasion y hay dos soluciones:
1.- Usar DELETE [<ámbito>] [WHILE <lCondición>]
[FOR <lCondición>]
2.- Hacer Scope por el rango de borrado y borrar entonces.
Saludos
Jose A. Suarez
Fredy escribió:
> Hola,
>
>
>
>
>
> Tenemos el siguiente código (estoy utilizando advantage y ficheros adt)
>
>
> =======================
> With Object ::oDbfLinfac
> :OrdSetFocus(0)
> :GoTop()
> Do WHile !:Eof()
> LogDebug(:Factura,:Recno())
> If :Factura = nClave
> :Delete()
> LogDebug( "DELETE", :Recno() )
> endif
> :Skip()
> Enddo
> End
> ======================
>
>
> Pues bien, cada vez que hace un delete, se me va al principio de la
> tabla. Esta es la salida que da el debug:
> Estoy borrando las líneas de la factura 25. en la posición #19 encuentra
> una línea de dicha factura, la borra, y el la #20 me da el recno 1, en
> lugar del 104 que es el siguiente
>
> #1: 48 1
> #2: 5 2
> #3: 31 3
> #4: 7 4
> #5: 10 69
> #6: 63 83
> #7: 63 84
> #8: 62 85
> #9: 11 88
> #10: 12 89
> #11: 9 93
> #12: 9 94
> #13: 30 95
> #14: 48 96
> #15: 16 98
> #16: 30 99
> #17: 30 100
> #18: 31 101
> #19: 25 103
> #20: DELETE 1
> #21: 5 2
> #22: 31 3
> #23: 7 4
> #24: 10 69
> #25: 63 83
> #26: 63 84
> #27: 62 85
> #28: 11 88
> #29: 12 89
> #30: 9 93
> #31: 9 94
> #32: 30 95
> #33: 48 96
> #34: 16 98
> #35: 30 99
> #36: 30 100
> #37: 31 101
> #38: 25 104
> #39: DELETE 1
> #40: 5 2
> #41: 31 3
> #42: 7 4
> #43: 10 69
>
>
> En cambio, hay veces que casi lo hace bien. fijaros que el al posición
> #21 sí ha saltado bien.
>
> #1: 48 1
> #2: 5 2
> #3: 7 4
> #4: 10 69
> #5: 63 83
> #6: 63 84
> #7: 62 85
> #8: 11 88
> #9: 12 89
> #10: 9 93
> #11: DELETE 1
> #12: 5 2
> #13: 7 4
> #14: 10 69
> #15: 63 83
> #16: 63 84
> #17: 62 85
> #18: 11 88
> #19: 12 89
> #20: 9 94
> #21: DELETE 106
> #22: 23 114
> #23: 51 122
> #24: 49 125
> #25: 48 126
> #26: 19 149
> #27: 7 150
> #28: 48 159
>
>
> Si en lugar de los datasets lo hago "a pelo" funciona siempre bien
>
> =====================
> SELECT( ::ODBFLINFAC:ALIAS())
> SET ORDER TO 0
> GO TOP
> DO WHILE !EOF()
> LOGDEBUG(FACTURA,RECNO())
> IF FACTURA=NCLAVE
> IF RLOCK()
> DELETE
> LOGDEBUG("DELETE",RECNO())
> UNLOCK
> ENDIF
> ENDIF
> SKIP
> ENDDO
>
> ===================
> Fijaros que la linea #22 se queda "quieta" en el registro borrado hasta
> que hacemos el skip
>
> #1: 48 1
> #2: 5 2
> #3: 7 4
> #4: 63 84
> #5: 11 88
> #6: 12 89
> #7: 48 96
> #8: 16 98
> #9: 19 106
> #10: 23 114
> #11: 51 122
> #12: 49 125
> #13: 48 126
> #14: 19 149
> #15: 7 150
> #16: 48 159
> #17: 4 161
> #18: 17 162
> #19: 48 243
> #20: 46 244
> #21: 37 263
> #22: DELETE 263
> #23: 37 264
> #24: DELETE 264
> #25: 48 265
> #26: 47 267
>
>
>
> Creo que :delete() hace directamente el skip, lo cual, aunque no se
> ajusta estrictamente a lo que estamos acostumbrados, no tiene por qué
> dar estos resultados.
>
> Creo que este problema está relacionado con uno que comenté hace un
> tiempo sobre las tablas advantage y el reusedel.
> Desde la versión pre5 de xailer, creo recordar, TODAS las tablas adt
> hacen el reusedel aunque nosotros le digamos que no lo utilice.
> Es posible que al borrar un registro y estar el reusedel activo, ponga
> todos los campos a 0, lo borre, haga un skip y por eso nos encontramos
> con el puntero en top en lugar de en el siguiente registro al borrado.
>
> ¿qué os parece?
>
> Un saludico,
> Fredy
>
>
> PD: ¿alguien está usando xharbour en modo consola o con fivewin y ha
> detectado algún problema similar con los ReuseDel?
>
>
Eso me paso en una ocasion y hay dos soluciones:
1.- Usar DELETE [<ámbito>] [WHILE <lCondición>]
[FOR <lCondición>]
2.- Hacer Scope por el rango de borrado y borrar entonces.
Saludos
Jose A. Suarez
Fredy escribió:
> Hola,
>
>
>
>
>
> Tenemos el siguiente código (estoy utilizando advantage y ficheros adt)
>
>
> =======================
> With Object ::oDbfLinfac
> :OrdSetFocus(0)
> :GoTop()
> Do WHile !:Eof()
> LogDebug(:Factura,:Recno())
> If :Factura = nClave
> :Delete()
> LogDebug( "DELETE", :Recno() )
> endif
> :Skip()
> Enddo
> End
> ======================
>
>
> Pues bien, cada vez que hace un delete, se me va al principio de la
> tabla. Esta es la salida que da el debug:
> Estoy borrando las líneas de la factura 25. en la posición #19 encuentra
> una línea de dicha factura, la borra, y el la #20 me da el recno 1, en
> lugar del 104 que es el siguiente
>
> #1: 48 1
> #2: 5 2
> #3: 31 3
> #4: 7 4
> #5: 10 69
> #6: 63 83
> #7: 63 84
> #8: 62 85
> #9: 11 88
> #10: 12 89
> #11: 9 93
> #12: 9 94
> #13: 30 95
> #14: 48 96
> #15: 16 98
> #16: 30 99
> #17: 30 100
> #18: 31 101
> #19: 25 103
> #20: DELETE 1
> #21: 5 2
> #22: 31 3
> #23: 7 4
> #24: 10 69
> #25: 63 83
> #26: 63 84
> #27: 62 85
> #28: 11 88
> #29: 12 89
> #30: 9 93
> #31: 9 94
> #32: 30 95
> #33: 48 96
> #34: 16 98
> #35: 30 99
> #36: 30 100
> #37: 31 101
> #38: 25 104
> #39: DELETE 1
> #40: 5 2
> #41: 31 3
> #42: 7 4
> #43: 10 69
>
>
> En cambio, hay veces que casi lo hace bien. fijaros que el al posición
> #21 sí ha saltado bien.
>
> #1: 48 1
> #2: 5 2
> #3: 7 4
> #4: 10 69
> #5: 63 83
> #6: 63 84
> #7: 62 85
> #8: 11 88
> #9: 12 89
> #10: 9 93
> #11: DELETE 1
> #12: 5 2
> #13: 7 4
> #14: 10 69
> #15: 63 83
> #16: 63 84
> #17: 62 85
> #18: 11 88
> #19: 12 89
> #20: 9 94
> #21: DELETE 106
> #22: 23 114
> #23: 51 122
> #24: 49 125
> #25: 48 126
> #26: 19 149
> #27: 7 150
> #28: 48 159
>
>
> Si en lugar de los datasets lo hago "a pelo" funciona siempre bien
>
> =====================
> SELECT( ::ODBFLINFAC:ALIAS())
> SET ORDER TO 0
> GO TOP
> DO WHILE !EOF()
> LOGDEBUG(FACTURA,RECNO())
> IF FACTURA=NCLAVE
> IF RLOCK()
> DELETE
> LOGDEBUG("DELETE",RECNO())
> UNLOCK
> ENDIF
> ENDIF
> SKIP
> ENDDO
>
> ===================
> Fijaros que la linea #22 se queda "quieta" en el registro borrado hasta
> que hacemos el skip
>
> #1: 48 1
> #2: 5 2
> #3: 7 4
> #4: 63 84
> #5: 11 88
> #6: 12 89
> #7: 48 96
> #8: 16 98
> #9: 19 106
> #10: 23 114
> #11: 51 122
> #12: 49 125
> #13: 48 126
> #14: 19 149
> #15: 7 150
> #16: 48 159
> #17: 4 161
> #18: 17 162
> #19: 48 243
> #20: 46 244
> #21: 37 263
> #22: DELETE 263
> #23: 37 264
> #24: DELETE 264
> #25: 48 265
> #26: 47 267
>
>
>
> Creo que :delete() hace directamente el skip, lo cual, aunque no se
> ajusta estrictamente a lo que estamos acostumbrados, no tiene por qué
> dar estos resultados.
>
> Creo que este problema está relacionado con uno que comenté hace un
> tiempo sobre las tablas advantage y el reusedel.
> Desde la versión pre5 de xailer, creo recordar, TODAS las tablas adt
> hacen el reusedel aunque nosotros le digamos que no lo utilice.
> Es posible que al borrar un registro y estar el reusedel activo, ponga
> todos los campos a 0, lo borre, haga un skip y por eso nos encontramos
> con el puntero en top en lugar de en el siguiente registro al borrado.
>
> ¿qué os parece?
>
> Un saludico,
> Fredy
>
>
> PD: ¿alguien está usando xharbour en modo consola o con fivewin y ha
> detectado algún problema similar con los ReuseDel?
>
>
- ignacio
- Site Admin
- Mensajes: 9447
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Problemas al recorres una dbf.
This is a multi-part message in MIME format.
------=_NextPart_000_000D_01C621E5.09FD2410
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_000E_01C621E5.09FD2410"
------=_NextPart_001_000E_01C621E5.09FD2410
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Fredy,=20
Tan s=F3lo quta el :Delete().=20
De la documentaci=F3n:
"Fredy" <fredy@navegandoconxailer.com> escribi=F3 en el mensaje =
news:[email=a20b86f20a828c7effad82b0bea@news.xailer.com...]a20b86f20a828c7effad82b0bea@news.xailer.com...[/email]
> Hola,
>=20
>=20
>=20
>=20
>=20
> Tenemos el siguiente c=F3digo (estoy utilizando advantage y ficheros =
adt)
>=20
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D
> With Object ::oDbfLinfac
> :OrdSetFocus(0)
> :GoTop()
> Do WHile !:Eof()
> LogDebug(:Factura,:Recno())
> If :Factura =3D nClave
> :Delete()
> LogDebug( "DELETE", :Recno() )
> endif
> :Skip()
> Enddo
> End
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D
>=20
>=20
> Pues bien, cada vez que hace un delete, se me va al principio de la =
tabla.=20
> Esta es la salida que da el debug:
> Estoy borrando las l=EDneas de la factura 25. en la posici=F3n #19 =
encuentra=20
> una l=EDnea de dicha factura, la borra, y el la #20 me da el recno 1, =
en lugar=20
> del 104 que es el siguiente
>=20
> #1: 48 1
> #2: 5 2
> #3: 31 3
> #4: 7 4
> #5: 10 69
> #6: 63 83
> #7: 63 84
> #8: 62 85
> #9: 11 88
> #10: 12 89
> #11: 9 93
> #12: 9 94
> #13: 30 95
> #14: 48 96
> #15: 16 98
> #16: 30 99
> #17: 30 100
> #18: 31 101
> #19: 25 103
> #20: DELETE 1
> #21: 5 2
> #22: 31 3
> #23: 7 4
> #24: 10 69
> #25: 63 83
> #26: 63 84
> #27: 62 85
> #28: 11 88
> #29: 12 89
> #30: 9 93
> #31: 9 94
> #32: 30 95
> #33: 48 96
> #34: 16 98
> #35: 30 99
> #36: 30 100
> #37: 31 101
> #38: 25 104
> #39: DELETE 1
> #40: 5 2
> #41: 31 3
> #42: 7 4
> #43: 10 69
>=20
>=20
> En cambio, hay veces que casi lo hace bien. fijaros que el al =
posici=F3n #21=20
> s=ED ha saltado bien.
>=20
> #1: 48 1
> #2: 5 2
> #3: 7 4
> #4: 10 69
> #5: 63 83
> #6: 63 84
> #7: 62 85
> #8: 11 88
> #9: 12 89
> #10: 9 93
> #11: DELETE 1
> #12: 5 2
> #13: 7 4
> #14: 10 69
> #15: 63 83
> #16: 63 84
> #17: 62 85
> #18: 11 88
> #19: 12 89
> #20: 9 94
> #21: DELETE 106
> #22: 23 114
> #23: 51 122
> #24: 49 125
> #25: 48 126
> #26: 19 149
> #27: 7 150
> #28: 48 159
>=20
>=20
> Si en lugar de los datasets lo hago "a pelo" funciona siempre bien
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D
> SELECT( ::ODBFLINFAC:ALIAS())
> SET ORDER TO 0
> GO TOP
> DO WHILE !EOF()
> LOGDEBUG(FACTURA,RECNO())
> IF FACTURA=3DNCLAVE
> IF RLOCK()
> DELETE
> LOGDEBUG("DELETE",RECNO())
> UNLOCK
> ENDIF
> ENDIF
> SKIP
> ENDDO
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> Fijaros que la linea #22 se queda "quieta" en el registro borrado =
hasta que=20
> hacemos el skip
>=20
> #1: 48 1
> #2: 5 2
> #3: 7 4
> #4: 63 84
> #5: 11 88
> #6: 12 89
> #7: 48 96
> #8: 16 98
> #9: 19 106
> #10: 23 114
> #11: 51 122
> #12: 49 125
> #13: 48 126
> #14: 19 149
> #15: 7 150
> #16: 48 159
> #17: 4 161
> #18: 17 162
> #19: 48 243
> #20: 46 244
> #21: 37 263
> #22: DELETE 263
> #23: 37 264
> #24: DELETE 264
> #25: 48 265
> #26: 47 267
>=20
>=20
>=20
> Creo que :delete() hace directamente el skip, lo cual, aunque no se =
ajusta=20
> estrictamente a lo que estamos acostumbrados, no tiene por qu=E9 dar =
estos=20
> resultados.
>=20
> Creo que este problema est=E1 relacionado con uno que coment=E9 hace =
un tiempo=20
> sobre las tablas advantage y el reusedel.
> Desde la versi=F3n pre5 de xailer, creo recordar, TODAS las tablas adt =
hacen=20
> el reusedel aunque nosotros le digamos que no lo utilice.
> Es posible que al borrar un registro y estar el reusedel activo, ponga =
todos=20
> los campos a 0, lo borre, haga un skip y por eso nos encontramos con =
el puntero=20
> en top en lugar de en el siguiente registro al borrado.
>=20
> =BFqu=E9 os parece?
>=20
> Un saludico,
> Fredy
>=20
>=20
> PD: =BFalguien est=E1 usando xharbour en modo consola o con fivewin y =
ha detectado=20
> alg=FAn problema similar con los ReuseDel?
>=20
>
------=_NextPart_001_000E_01C621E5.09FD2410
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.2802" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV>Fredy, </DIV>
<DIV>Â</DIV>
<DIV>Tan s=F3lo quta el :Delete(). </DIV>
<DIV>Â</DIV>
<DIV>De la documentaci=F3n:</DIV>
<DIV>Â</DIV>
<DIV><IMG alt=3D"" hspace=3D0 =
src=3D"cid:000801c621dc$a8367220$0e00000a@ozlan.local"=20
align=3Dbaseline border=3D0></DIV>
<DIV>Â</DIV>
<DIV>"Fredy" <<A=20
href=3D"mailto:fredy@navegandoconxailer.com">fredy@navegandoconxailer.com=
</A>>=20
escribi=F3 en el mensaje <A=20
href=3D"news:a20b86f20a828c7effad82b0bea@news.xailer.com">news:a20b86f20a=
828c7effad82b0bea@news.xailer.com</A>...</DIV>>=20
Hola,<BR>> <BR>> <BR>> <BR>> <BR>> <BR>> Tenemos el =
siguiente=20
c=F3digo (estoy utilizando advantage y ficheros adt)<BR>> <BR>> =
<BR>>=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D <BR>=
> With Object ::oDbfLinfac<BR>>Â=20
:OrdSetFocus(0)<BR>>Â :GoTop()<BR>>Â Do WHile=20
!:Eof()<BR>>ÂÂÂ=20
LogDebug(:Factura,:Recno())<BR>>ÂÂÂ If :Factura =3D=20
nClave<BR> >ÂÂÂÂÂ&a mp;nbsp;=20
:Delete()<BR> >ÂÂÂÂÂ&a mp;nbsp; LogDebug( =
"DELETE",=20
:Recno() )<BR>>ÂÂÂÂ =
endif<BR>>ÂÂÂ=20
:Skip()<BR>>Â Enddo<BR>> End<BR>> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D <BR>>=
;=20
<BR>> <BR>> Pues bien, cada vez que hace un delete, se me va al =
principio=20
de la tabla. <BR>> Esta es la salida que da el debug:<BR>> Estoy =
borrando=20
las l=EDneas de la factura 25. en la posici=F3n #19 encuentra <BR>> =
una l=EDnea de=20
dicha factura, la borra, y el la #20 me da el recno 1, en lugar <BR>> =
del 104=20
que es el siguiente<BR>> <BR>>=20
#1:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂÂ 1<BR>>=20
#2:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#3:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
31ÂÂÂÂÂ&nbs p;ÂÂÂ 3<BR>>=20
#4:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#5:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
10ÂÂÂÂÂ&nbs p;ÂÂ 69<BR>>=20
#6:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 83<BR>>=20
#7:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 84<BR>>=20
#8:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
62ÂÂÂÂÂ&nbs p;ÂÂ 85<BR>>=20
#9:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
11ÂÂÂÂÂ&nbs p;ÂÂ 88<BR>>=20
#10:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
12ÂÂÂÂÂ&nbs p;ÂÂ 89<BR>>=20
#11:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 93<BR>>=20
#12:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 94<BR>>=20
#13:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;ÂÂ 95<BR>>=20
#14:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂ 96<BR>>=20
#15:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
16ÂÂÂÂÂ&nbs p;ÂÂ 98<BR>>=20
#16:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;ÂÂ 99<BR>>=20
#17:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;Â 100<BR>>=20
#18:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
31ÂÂÂÂÂ&nbs p;Â 101<BR>>=20
#19:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
25ÂÂÂÂÂ&nbs p;Â 103<BR>> #20:=20
DELETEÂÂÂÂÂ& ;nbsp;ÂÂÂ 1<BR>>=20
#21:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#22:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
31ÂÂÂÂÂ&nbs p;ÂÂÂ 3<BR>>=20
#23:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#24:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
10ÂÂÂÂÂ&nbs p;ÂÂ 69<BR>>=20
#25:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 83<BR>>=20
#26:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 84<BR>>=20
#27:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
62ÂÂÂÂÂ&nbs p;ÂÂ 85<BR>>=20
#28:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
11ÂÂÂÂÂ&nbs p;ÂÂ 88<BR>>=20
#29:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
12ÂÂÂÂÂ&nbs p;ÂÂ 89<BR>>=20
#30:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 93<BR>>=20
#31:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 94<BR>>=20
#32:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;ÂÂ 95<BR>>=20
#33:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂ 96<BR>>=20
#34:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
16ÂÂÂÂÂ&nbs p;ÂÂ 98<BR>>=20
#35:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;ÂÂ 99<BR>>=20
#36:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;Â 100<BR>>=20
#37:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
31ÂÂÂÂÂ&nbs p;Â 101<BR>>=20
#38:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
25ÂÂÂÂÂ&nbs p;Â 104<BR>> #39:=20
DELETEÂÂÂÂÂ& ;nbsp;ÂÂÂ 1<BR>>=20
#40:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#41:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
31ÂÂÂÂÂ&nbs p;ÂÂÂ 3<BR>>=20
#42:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#43:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
10ÂÂÂÂÂ&nbs p;ÂÂ 69<BR>> <BR>> =
<BR>>=20
En cambio, hay veces que casi lo hace bien. fijaros que el al posici=F3n =
#21=20
<BR>> s=ED ha saltado bien.<BR>> <BR>>=20
#1:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂÂ 1<BR>>=20
#2:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#3:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#4:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
10ÂÂÂÂÂ&nbs p;ÂÂ 69<BR>>=20
#5:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 83<BR>>=20
#6:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 84<BR>>=20
#7:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
62ÂÂÂÂÂ&nbs p;ÂÂ 85<BR>>=20
#8:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
11ÂÂÂÂÂ&nbs p;ÂÂ 88<BR>>=20
#9:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
12ÂÂÂÂÂ&nbs p;ÂÂ 89<BR>>=20
#10:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 93<BR>> #11:=20
DELETEÂÂÂÂÂ& ;nbsp;ÂÂÂ 1<BR>>=20
#12:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#13:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#14:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
10ÂÂÂÂÂ&nbs p;ÂÂ 69<BR>>=20
#15:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 83<BR>>=20
#16:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 84<BR>>=20
#17:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
62ÂÂÂÂÂ&nbs p;ÂÂ 85<BR>>=20
#18:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
11ÂÂÂÂÂ&nbs p;ÂÂ 88<BR>>=20
#19:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
12ÂÂÂÂÂ&nbs p;ÂÂ 89<BR>>=20
#20:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 94<BR>> #21:=20
DELETEÂÂÂÂÂ& ;nbsp;Â 106<BR>>=20
#22:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
23ÂÂÂÂÂ&nbs p;Â 114<BR>>=20
#23:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
51ÂÂÂÂÂ&nbs p;Â 122<BR>>=20
#24:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
49ÂÂÂÂÂ&nbs p;Â 125<BR>>=20
#25:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 126<BR>>=20
#26:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
19ÂÂÂÂÂ&nbs p;Â 149<BR>>=20
#27:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
7  ; 150<BR>>=20
#28:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 159<BR>> <BR>> =
<BR>> Si en=20
lugar de los datasets lo hago "a pelo" funciona siempre bien<BR>> =
<BR>>=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D <BR>> =
SELECT( ::ODBFLINFAC:ALIAS())<BR>> SET ORDER TO=20
0<BR>> GO TOP<BR>> DO WHILE !EOF()<BR>>Â=20
LOGDEBUG(FACTURA,RECNO())<BR>>Â IF=20
FACTURA=3DNCLAVE<BR>>ÂÂÂ IF=20
RLOCK()<BR> >ÂÂÂÂÂ&a mp;nbsp;=20
DELETE<BR> >ÂÂÂÂÂ&a mp;nbsp;=20
LOGDEBUG("DELETE",RECNO())<BR> >ÂÂÂÂÂ&a mp;nbsp;=20
UNLOCK<BR>>ÂÂÂ ENDIF<BR>>Â ENDIF<BR>>Â =
SKIP<BR>> ENDDO<BR>> <BR>> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<BR >> =
Fijaros que la=20
linea #22 se queda "quieta" en el registro borrado hasta que <BR>> =
hacemos el=20
skip<BR>> <BR>> =
#1:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂÂ 1<BR>>=20
#2:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#3:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#4:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 84<BR>>=20
#5:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
11ÂÂÂÂÂ&nbs p;ÂÂ 88<BR>>=20
#6:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
12ÂÂÂÂÂ&nbs p;ÂÂ 89<BR>>=20
#7:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂ 96<BR>>=20
#8:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
16ÂÂÂÂÂ&nbs p;ÂÂ 98<BR>>=20
#9:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
19ÂÂÂÂÂ&nbs p;Â 106<BR>>=20
#10:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
23ÂÂÂÂÂ&nbs p;Â 114<BR>>=20
#11:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
51ÂÂÂÂÂ&nbs p;Â 122<BR>>=20
#12:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
49ÂÂÂÂÂ&nbs p;Â 125<BR>>=20
#13:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 126<BR>>=20
#14:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
19ÂÂÂÂÂ&nbs p;Â 149<BR>>=20
#15:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
7  ; 150<BR>>=20
#16:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 159<BR>>=20
#17:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
4  ; 161<BR>>=20
#18:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
17ÂÂÂÂÂ&nbs p;Â 162<BR>>=20
#19:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 243<BR>>=20
#20:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
46ÂÂÂÂÂ&nbs p;Â 244<BR>>=20
#21:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
37ÂÂÂÂÂ&nbs p;Â 263<BR>> #22:=20
DELETEÂÂÂÂÂ& ;nbsp;Â 263<BR>>=20
#23:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
37ÂÂÂÂÂ&nbs p;Â 264<BR>> #24:=20
DELETEÂÂÂÂÂ& ;nbsp;Â 264<BR>>=20
#25:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 265<BR>>=20
#26:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
47ÂÂÂÂÂ&nbs p;Â 267<BR>> <BR>> =
<BR>>=20
<BR>> Creo que :delete() hace directamente el skip, lo cual, aunque =
no se=20
ajusta <BR>> estrictamente a lo que estamos acostumbrados, no tiene =
por qu=E9=20
dar estos <BR>> resultados.<BR>> <BR>> Creo que este problema =
est=E1=20
relacionado con uno que coment=E9 hace un tiempo <BR>> sobre las =
tablas=20
advantage y el reusedel.<BR>> Desde la versi=F3n pre5 de xailer, creo =
recordar,=20
TODAS las tablas adt hacen <BR>> el reusedel aunque nosotros le =
digamos que=20
no lo utilice.<BR>> Es posible que al borrar un registro y estar el =
reusedel=20
activo, ponga todos <BR>> los campos a 0, lo borre, haga un skip y =
por eso=20
nos encontramos con el puntero <BR>> en top en lugar de en el =
siguiente=20
registro al borrado.<BR>> <BR>> =BFqu=E9 os parece?<BR>> =
<BR>> Un=20
saludico,<BR>>ÂÂÂ Fredy<BR>> <BR>> <BR>> PD: =
=BFalguien=20
est=E1 usando xharbour en modo consola o con fivewin y ha detectado =
<BR>> alg=FAn=20
problema similar con los ReuseDel?<BR>> <BR>></BODY></HTML>
------=_NextPart_001_000E_01C621E5.09FD2410--
------=_NextPart_000_000D_01C621E5.09FD2410
Content-Type: image/png;
name="Image1.png"
Content-Transfer-Encoding: base64
Content-ID: <000801c621dc$a8367220$0e00000a@ozlan.local>
iVBORw0KGgoAAAANSUhEUgAAAtwAAAJqCAMAAAAv5GczAAAAB3RJTUUH1gEZ EhgF9RF//wAAAAlw
SFlzAAAOwwAADsMBx2+oZAAAAARnQU1BAACxjwv8YQUAAAAnUExURf///wAA AH8AAAAA/+zp2Kyo
mcDAwAAAZszMzGZmZgAzZgBmzP/MAKabby4AACufSURBVHja7Z2NguK4DqWt YqfuzG6///NuV0Fs
/RzZToAEyPlmuiCxLcnKwZjEkPJNyIdSjg6AkGdBcZOPheImHwvFTT4Wipu8 OsUx3/D6IBqz/V0r
mHa3slDPgXdPt+ibx7sTu+RtKf8zPFDcUivoZhLEncgP7uw0kUTciaFJl+Sd eaK4Zamgm6ndHfnJ
anFLKu5J80Jxfxzlf7+zkX///lf+/Xe9uH9RwtAjtrgyvRnqfX9jg2anzLZY b57i/jzK//79ofz+
BeL+kzZUz5G4v7W44ywFTMr96G932oqqxbdpEV5SsXLfgKlI3prrtOTv+I2n JX/+AHX/+WEo7m/w
CTOIENRztcQI0MTRsRsjQlMlZMBUJG9N+d9///33o+zy9/E/L+5fGcdG28Qt I3HfaodaYED//s5f
Dv0wvr+93juvJ/LW/J2WlNvo/Rcn7j9/cnWvEbcqiNOSOnGxjUBlq7tUzYn5 UBkaiK898rb8zLlv
Z0r+/c/Nuf/86ah7hbjRJm4SGrkabooz0aLz2pl5PZF35nfkLreB247cf/70 1P0McaNJi79wE+cP
k+IOlaEBu5O8NX/F/d9///6O2//5kfv/Vv4faKieP0TcUKpQaZLqNY2I4j4j nZF70FA9f4S42yc7
W6vuzGYawS8yjypDAxT1B1FuQzaac/cbqufZHMPsyMQ9OwEW12RS3LmQKe5P 5zpyLzznCiU6DeHr
TXy6654n6X0E/U4qQwMU+edw79qSX6y47aTVbYPdTvt2jhLPc5smduNbazMJ 4xtUcgY45f4Q7l3y
+gsWt99hqvbrBaUJMPUdyr6RuL9h5dTAt2tHTshQ3LrMCBLXC58oJewMFym9 eL+BuL9BZfvysAbs
TnJK+E0c8rFQ3ORjobjJx0Jxk4+F4iYfC8VNPhaKm3wsFDf5WAohhBBCCCGE EEIIIYQQQgghhBBC
CCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCEHcr2F2FTN1QV3WSXk XkT9nal5XxVZ34SQ
rVDc5GNp4r7OTuT2X1GTlaXkVrUVynVjqXL9AxubCtYfIU+izrlv/2T5V5Sc y6LhYgpbVVUlb6yF
7a0S8njqyO3k18q8uAvQZyzTqsUVCsVNnksq7nYS5Ta2a32KiB+vvbDrKyQ0 VkYobvJEMnG7mUUJ
+ixgSE8aD4Z9Qp5DR9wyoU8w5y5e3IKttwJCnkK7iGNnFrczIcWWtEJ0tqSp 1ZwtcRWWCU9tTH2T
14TKJB8Jz1OTz2VyVQohhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQs7D /yEfztEKo7jJs/jn
aIUdKu5/dmAXJyTyN/FHK+xYce/h5cwpPhKKewcvZ07xkVDcO3g5c4qPhOLe wcuZU3wkFPcOXs6c
4iOhuG+/F/jz231P+o2dq7jVraUmf6vK/r7sqHLtRP5bQf27W61y9xZQ3D/U H7Z8jpcfJ+ruO+1P
n7Vqg8bDU0FFqZ+3ljrF/cNzfxfNi9s9S9kubuyH4j4VceSus5PZ+1POeGni vlku+pePS2kTFfd7
yqAmrNKM+FtYLb+XLDEE5R27k/Zzy++pcYr7By1uaXd9etAhrXPuq6+ib6XT uzFU+2n7vKb+gW8r
bvSL+CEEs+ndiWv+dlDcP5iR+0niXtyMxF3qnrRmCdJtReJqaQXHELruwJ0i 3guK+4edxN2XrJ2W
2Jr2TEuZEre6pZSeYzVzeqaD3FHcb82O4gbTBSBuXyXeWmRa3HH4NUWqYeaO 4n5rdpxzT4lbD55r
ZuetqP1xRgTrvpTcHcX91ux4tqRNLdDZEndeQpa7bOOazkotMW6qkfo0hFDV jd3VOjxb8o7Ey+/P
OIy8/H4QFLeF4v4gKG4Lxf1BUNw7eDlzio+E4t7By5lTfCRnFzf5ZE4u7p2+ hE2O4PTi3sPLmVN8
JBT3Dl7OnOIjobh38HLmFB8Jxb2DlzOn+Ego7h28nDnFR0Jx39YToSuTD7pc eXMCzA+/dt9bvvWm
q5l2hOJuC+c8459BmPTyT9pi8LX7uPBWkucEQHHn4s5ZN2haccu8oSj9+J1J kkNxa3G3VdVqfbMU
cau866/fuBaZFyXuZrJttoXkbjF5+ILQ4vNm6+j0vToUtxJ3fdRL9UXJLnwJ TX2/IVd3E3eVtJhR
uecGfvNN1DfKSArFbT5QmqGxbWT/9Jjb8bKIW33zBYg7+xIn/Frn2371a08o bj3mmkEYjtZW8KYg
9xJH7pG49YuMI/dWKG77XUKk2zhwhkrd7xmiOfdw5M5LOeeeheJeK+575tyl tO+aT0xLzJP2lqEs
kR4Ut52WmOmAALWZKcv6syU3N31xF/cZQDk05wWPTt+rQ3Hv4CW/iHMXFPcA insHLxT3MVDcO3hJ
1pbcCdeWjKC4d/By5hQfCcW9g5czp/hIKO4dvJw5xUdCce/gpd0ybc2HQFld sBa33LBT8e5bpXWt
5sX9uEdn/CnuHbzcfkp2ZbOJ+rKlEaosQzti/4Ra8ug+Dn1R3H0o7qxZR9y4 2aPFHZYYSCiUkRmK
ewcvSty364+/z9Tq2rA+pf2i9rLj9hPaVxtL42jOtirBep0FaA/67maC7Thx j26V1n7A3lkuusPV
ql2wpuxJawBfSfE3xVU1insHL1bcy2FvS0WWh2KOqdujWoYWcM+CLRHowTyD dqy4QS1wq7Tgw3em
5ST0wIvbfYPJ/ovduyWe4n66FyzukgmqdPakN/bIRIkqwL1BVD1xl2is1Leh fp/MU5eT1eJuVVAt
insHL07c4V5hubjd/eJrS93C34tsnbibSXOLs5G4O7dKS/vkOmNygiIqMPBl v5Si46C4PYeN3GV+
5C62+kSLtSN3CKsAO6NpSVLkIvSdSUburK/aghTThuL2vMq0RJAQHjYtgUe/ Ny1BdowWVdD6ad/O
ummJ8RXFrfxR3Jhjz5aoIwLOlrjzFaqCVZU7O6FaVSWBsxDOg27V1o3HsyXz t0pzE5dSQL+huNsn
0/jFVjf4tzhi966Jp7if7mXkRKbMrCZOB04Gxb2DF4r7GCjuHbwcJO5drL8y FPcOXs6c4iOhuHfw
cuYUHwnFvYOXM6f4SCjuHbzMOpHO/rWLpWen2pJthfOA7zd7p7h38PIAJ+t0 tVmF0jVBcb8TFHfa
kOJ+d/YUt7tMJ/6CZHEXK9XW7ceNvZFS4uXHtqGv2nVWjgefbam2DsCWvgkU 9w5e1E8Yx4UZxRS2
lRJ2iTNcUlLCygq4NGVy5bhbL+KLQtCvD8W9gxf9K68FrUtSQksemiiLbzKz KirZM+MzfV29PhT3
Dl7MTxj7xdzL7rJC3GFldCLuuZXjfpwXobg/gGNG7hLFXbCGEnHDCU0ycpfV 4sbhUNzvxnFz7pJI
NMy+kzm3+Rn8FdMSmRI3R+4P4MCzJW2P2VuFKFho5rzGbylarO3PlihL8GxJ rS0uFh0V+mb9a0Nx
7+Blm5MpEa1U2vsI8xFQ3Dt4We9k+t2f4u5Ace/gZYOT2Xd/irsDxb2DlzOn +Ego7h28nDnFR0Jx
7+DlzCk+Eop7By/+njiyXAhcMQV+p1NwrwLFvYOX/D6UOaGY4l4Nxb2Dl/wO winm5/fcHjIJxb2D
l/ze73q73Qf7tiV1ZXWtSdZAce/gpYpb6bTeZaYoRV+l7G8or37gjKyB4t7B i1o49Yuelhhhm3/2
PgsU93oo7h284JG7LM/1yRP7L/w0JVkDxb2Dl86c28w/ihX3MknhnHsjFPcO XrpnS8To3UxL9NpW
ins9FPcOXvB5brtAWqzISz1bohuRVVDcO3jx4t4Exb0ainsHLxT3MVDcO3jx a0u2wLUl66G4d/By
5hQfCcW9g5czp/hIKO4dvJw5xUdCce/gZflph3gzOYt0tobI2hY7zOFXncmU tUvch1DcO3hpZ0sG
61w7W0NWq2KH7xZL3lr69R8Cxb2DF4qb4t6fgy6/F/XzZtcn7Uq7/U2p3q95 u2WD7kemkl8DF3Xd
P7EkMbr2PNTHznwX9Mp0CeaUpQcnnuJ+uhf9c2pG3O4X/OwPqGmRmSWz8Wf7 lI3Oln5qTATbMDro
+doz76wU1CHo0+iZ4n5k7/c9WyJGRemBHgnBalw9laRMjdWpm+Is9YJwGhRo LOy15RT3s9n9VKA4
ccdf6xY3L+j8mjf+lW7B1qxhFYudHlSPwbszq/rXF3f7uW8VDMX9fI74QOlH 7oLe8YejXDLe6rJ0
0I3iBg/BO377iBWkF1OhuHfjQHEjxaGpd6KrbBYe5sndqXtqKX+9jefcBUXJ OffuHHkRZ5krqKfX
d3w1n+j+mrfb46Yl9qZo5qnWsWS2bXS3l4ar34Z535mCuhC/NWd+Jrx6fWDi Ke6ne9k/xQ8eAvte
9nG2AYp7By8U9zFQ3Dt4+VRxH+FsDRT3Dl7OnOIjobh38HLmFB8Jxb2DlzOn +EjOLm7yyZxc3P/s
wC5OSOT04t7Dy5lTfCQU9w5ezpziI6G4d/By5hQfCcW9g5czp/hIKO4dvJw5 xUdCcZu70xT/tKid
W394wIgb3aaPv5T2HCjueXH7kllJAnEj00cn4/OguIFs58Q9Pd42cQsWt7dG nT8GilvLVgQ89zfV
a7fQE1tL1Kp9rc9F3OiWIeruTs0a5ymPgeLWoitGcP72HkmpuaWegMF5+SZO NYPv7mQaUt4PgOIu
pQ25BYuuFnUFjpsV96M8wWbWkOq+G4q7KHGL9Efu9pMKq8VtR+6ijHLkfhYU d2ni7kwT+jPmGXED
C+nITWk/BIr7B8Ej6Oo5d1/c4WxJau3ovHwIFPcP7YyIKKnaQVTrPzy3g3Jy tqToRslLg2P2A6G4
d/By5hQfCcW9g5czp/hIKO4dvJw5xUdCce/g5cwpPhKKewcvZ07xkVDcO3g5 c4qPhOLewcs/xf62
q0Y6WxGZ3kko7jcTdwb1jaC4d/DSu1Ufxf08KO4dvFhx33N7Pglbv1fr8Y3v Tg/FvYOX6+os+6/e
BUlptH+PD3iTHLWf31XzUNw7eIHiLl68gh6y+zFR3BNQ3Dt4ua3Oave+cXJc cXu+uqFvXUNxYyju
HbxYcZeyPMCxOpYviB/AOXL3obh38LJ8WaH+FS9ukTKelnDOvRKKewcvRtx3 3Z4vOVtSeLYEQXHv
4OXMKT4SinsHL2dO8ZFQ3Dt4OXOKj4Ti3sHLmVN8JBT3Dl7OnOIjObu4ySdz cnEffcMt8lyOVtiR
4j469+TJHK0wQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBC CCGEEEIIIYQQQggh
hBBCCCGEEEIIIYQQQsjZEL91uxv7qmZ2j8AqiU3BdW83chdxOwbWpmKf6k6Z NCOd2jr4FVFJZ2ud
58zE+hRNtZBSFbTayZajNrZpNbPd0UDcMtf2ti03kTZxO9XaDftcpnyEMpmv v8as68lqk+nWvLjv
68V0VZdFijuxtchBMn1kz7eJG1WguDdVfVVxi1ylIVdZyVJcn95mCrd3n6Le a69NVZmvIkuN3JA0
AWhxN2nc/vjn+q8dPUQ5WppJ63h98cQKpj/Blm68BIhqB3G32ZbuXJEskzCN Ll89zybHdc4Zkw6S
41JRy69/VHkzKsZ6Hlg85IN0b9a2SsRNT0VnITxtHbA6Fpu6gqr0DYlq2sSt dSQT/4px6Q+oVVyI
RAcVwvehSoEpc7VLHrzunBJK9Bwtz3rWObZHCB4MkxyfCitdVb2OgkWwu/Rg yFztx4i7+HzZAx4/
LaSRoypZrdgTKId7xG1l4VXS66vtRSnTadHiVm83Ssmhg6Xj2cWReS5JOCHa /iu/JC1cHusu40gG
3egpIq29HtEf5N3LXOqLST21bsEbk3SqPEbc9S0dP9epEfsu3va442c62Bd3 t6qePbj3oTormRS3
C9RslXBA1LzGeHZTBXOMoRHnM1ToibvWn5FrNG6lLOJC2iBu4Be+TO3BhJF3 xouHitsJxj93HSoo
Fi9uuKd3bNKRLdYuSfCogyGkNNNdz6g9bFNQT2cPuxd3kM9EAnNxh26sRsxj L7okPZKGXECVjiEg
7jrorpuajBI5lnJ6bFqHMolhieZz7q64szS6IGKakXRRm9nkpB9NjIBMxV4C YTjd2g8Qt3lf0Z+6
8efcsnzGbU3R2RK7ZZQh4Fkzd3Ot3tCtp/a8zktqwC0qFX/z5I4fqGD6Y235 10GWD90bF2Q7W2L7
AT27NLbNzLMe8kIVM9u0snQ+k7MlaghRQZuKUroJ1F0o49obtf2RqCNLLJvz woS+CBQ3ZPMb/D0z
A/Jo+EYG2fwGz5kBIYQQQsgzGM+ypF8m3WZvOYWbCXpYZ13P5e62Enaqi7Zy vYZgT7LWs3X2Cqut
3MrtBcTavnp7ZJYfI5sJK/cE8Tra3haJbCjZ5FDuKgY1BMrOnawOe2JlGWxV iT9S3A+SzZPF/Tp8
urhji7G4TeGUuF0tWfw8euReD1ylvFzLMldGJV41c5eT2vpi8ZbB1Uhly8Xg TLsrWbBV7EtR/SnB
AFyZbGPKrtCF9czS6Um0Ay69gWMAkizOfo0DdQ1nOsoW7HukuAfHEGUwOX5b rlhqMdYLq+3/UGR6
YLoFmsMHZ6/oZomjYCa2in2pdfrhoD4W7xPYmIhJJLHTjdsuDIGZ6MbRy7QS h5prA3Enc+4qblsO
xO1fIjM9B13Ojt+8uAtOTMwZ7IjuAeya3up1saSO5hMTzeWqtuVJTEEtuFUZ BJvnc7JDk9FntY0e
xO0B4gah6T2xRfDsrYyOYciT72GoOmaduLM1xmFxrhapwLEIdUGtxw4LxUsb UjItxCXAkhoIS8EE
xDS5njmsxfKhoaXLfpFSmhjdGdt2q7iTF9djxV3E1sLHEC0SS8Qdl1YNWSXu +CIaNEeZl3HrfiHM
WH7Yegawr5JGEFvFMRb3JO141rjMb60Rd9Tv/uIGnvu6wmkbAxPf/o9FJgi/ hlhsc2gFBAv9OdNZ
x2f2pC9VLL/YsrueeeZlumLpchDwaD187xhuEDeoPhB30t6sh90450ZHYV7c 4CN28+AXAIfF2dXP
8nEYni1RW+JdXW35sxLRdLLK2exJPnu3euLruJXJfnSYXM/sZ2fBHOxCfrak 4CSL77OfxKVnS7Qe
/EUcI854ESdc6QHlRkzKonaKj+H4bInusz/c97LO0Ea3w2YP685OeSCRF8vg uneAOzrw4uJenwcS
ebUMrn4H+Exxcz3zI2AKCSGEEHJiBG3JoKZeAzxrepXLbRO0B0/rpsyNUhUK 7gnSn2FLHN71GUaG
1QYHf9L4HmRpkV5N6RpZ53IQx/P6OvQjM3t3OZ00tPE4cU9EKLMVn9P/ze4o 7mHh4eIe233y2ad3
EjdYS7z8QHfxF7pCjG1hMVrdDa492kt9RS8cd5c0i94jJlx3NdVcwlPlvmdm xVQn8JAMVcddCyxZ
z4trqVIClgu5lddxYXtvjXaIYs2qcpvTkIBSTO/V0RdXLQ3S5hKo6XnAtdRa 2OahHQq80K31Xrw9
Uzu6E9+shABquOLDUuJW5chV9IwDL8GOq1N6hTpYn0PxVkoWVdpclRUYRawq vaCznC7ihkObdeAO
e+dg7KbskOEQnysz3bPHJm6iY6MPfTr4JlqJ0lLJL34nfkg8h8D7daQTfoFV m1vRNboeXbg9n709
/Z5nYdZnUY/1A2WM04kbxXKEuMGCbFBmD8m1aNm2q7uzoyXYXdxZ01jtYWmt FTdaox0DL2mdrrj9
tMR0QYlbSgsFyDEsbJ8Rd2ot73nokZ+7YXE77ai+13Fa/DtlENYeZErAx9B3 L0rK7h1YH42x0eXd
4s51GYzgOkMjEoItoOtZMWg+Ke7BMe1nGe5dK+6s/y8g7nTkVmWd7t1qwSOJ rOMZZXrcOgdCR6PL
0esIe841ltaZERrMoRG3zxh86XeGhW6SpnqehQleFr2jnx322LMDxL2cz2jv R9edospUN8ROGFSt
pdx1L/40tC2WUEsZ6i/QTsXtzhmYMF0vC/KnZpZmybapBw0o1YQ14bcsJxnz IU+shgcr3VesKg85
RU7sCY4mTXfiIwuyHQyJjT6C5/VGVu1+Zd4w5MlOfETP8v5S3Jt78l6cTdzP XBGdWn7DfL5hyKEL
uA8f0DNCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEkBficpkq u4xr/5Rm5bHktt21
1wvst/1i1j8udpd65KRcVpX1pXJJKlxAy3tEdxPtRftUj2XROMV9Yn5EoEdA vfuqnjoiLkVLhYuz
04R12741bI2KGWGdCG9q9QN8G5BtgOr1gsSt/lLbJ+WqLyMKVaALixG3r2+F bSpdUONLLdGDLYgj
G3cpbjICiGIpuGixFq9PN5J6cZc40Gb+Lt04lnYXPJsfipucl83iTuyYubUX f9ku7tn4KW5S6UxL
Nov7YiqpyYcT4V3TEueX4iaR/INc/bx3Wcr1B8VL/ATqz8zV0xXVka1QnF00 nRmJOz0VmExjCDkG
ipF8JBxoCSGEEEIIIYQQQgg5kuwMXbo6u2er/in2GSGH0FmffQl70q2269Kp QMguDNZng9V/Zp33
xV8Ob9/kObpn5OyM1mfH/W6d98XZobjJqzBan13FrVZIlaK223IpU05xk8MZ rc82I7drouvGJd0U
NzmYmfXZWvcFiftCcZNXZLA+W20m67xjw6IfCPkk1n6FjJC3geImhBBCCCGE EEIIIeRlSX9x4fYj
OvH3u4vdwVN/5GVJ1nPXn0O7dJtS3OQFmf697VvNVsr12+S1Ga/nbuJ3X1bg +m3y2gzXc5e2XzeJ
vwpLcZMXY7ieu5VT3OS9GK3nvvgpC8VN3obReu6ylJf4+903C+aBkLcn/WoO IW/OxV/VobgJIYQQ
QgghhBBCCCGEPBH1Q5Vqn30k5D1BXzjIFkoR8lZc6nIodU92+0iNk/dEr4da VgC6R47g5D252KWq
5ts1FDd5a/T8muImH8XF/uO0hHwMy6nA38+P7Yl5pLYJIYQQQgghhBBCCCGE EEIIIYQQQgghhBBC
CCGEEEIIIYQQQgghhBBCCCEauTJRsT1O1DZNduzJYJ9kTVeGLKD1TBKf1/mn 2pJO2YTzFcHJ1oZT
jmVUb97hzgdbgE+/Dx8lMS/d1V17mLjvMDAShcw3Xl/haZLYS9wPc/g0BITn 9z1T3I/qwQOaUty+
/e8b+PVdXL2X357Wh0UJ12dpTSlJuSxFdVOim1tcwUB1ji0XU5Tu8/3UwzuO J/FV5GbrGlt7AKak
xpI6uP5puQHZ6JhV1W3nhofVVcdp9wlUcbgGtgdNL/0eNvvdFFrpDMW9zLmr aZdKvXc5kvpZUlOM
tWILsnqpuVK8S1wVFfkOhH4acaNKqa8q56bxdmicqQkHUgZd7JiF1eOByA5r 97jZmEJNL4REL1M9
VOZgXyV2vSdu9wRkAWo80dF0QX50azxS+jH0xG2arhG3Papopxb3Mq7Ug2b1 5vyle/PctI50DeCU
4+6GbvSNZAGPDkfMeun1sPciheow6UloVcz7jgx6iPyJaqtN1WJTYC3aQnU4 bSihRRRcE11R+5oD
7ao9DdkXM4CgXrRa28VtZ1AuN+ZNe724u2/INWaB1UHabdpG4o51JPTO9VAS U9GHOQZz4o5yXSdu
k20caOweHMHU4ez2NB5u5A2MONHwaJwC+aiHxExLVoobHr2YtQ3iltQ0PGZ9 rebBpg16bbuhDMUd
FZAh+gnOAurJciAnakpqv5eipjk9rRymH2XOuotxYHHPzO+v1ebm3Kk2u0fP ZqNrFkTZFXd0P3Hc
stykryz8oaqX2Blxz47c4t6i2tOl3D4sXkZnS0y1WBDqaTfqcBoDS1XouU0e 0AQrfNgXszMcGUnC
2n62xDtweS3qkKXZ6JsVlamlC0oN+cEK1d1xs7kKZ62cc2O/Vh31EE5LoKZc AM/heZZT889xOTcM
TFlSdh4baxzCD2G992Pj3dxJijtaorh97TcUt3nLfI59uHdPZ3caemSsaH5y AKvz9GyVEEIIIYS8
B7PLuVHTHaPcUm3YSObKZLLl+g9bz6o9n5LPnhLL9j6+XmIeJ27Z0PINxP1E R68Ixf2wrlPcr0YT
N7xmplZLdJbxxmp2fa9tDy9MZXXyZcTxEpe/TtdbDZxVx0koxYZ9M+1Dy6+8 uegzE/HqHwx1dJBM
Zv2WvXIZrEho+r5UcQt8WP7ZPfpZUq0lB7bHqyBinfaAaxpLMnRsLYLqyPoi 7tx0CDJ20EbYMzHY
mRiVjuPiQhysz37bay+BtrQkSUaiepNFXK0YU8UW4MMU6gQfIzcysI3N6TgF Oh+Z7oU1Gd1crnOj
I3EntrGzzxD30hG3UjnmDa8P9ou0VYHzoBdP9xdpqzrpQYHrdVRByY4aXudc 7GH1i4WmxY2XEY3F
DRd252vj04OkCu2qZ78uSYkbrb3+jCuLorI0zFtBh7U7dpROVVxYEq/dIbtk BdjxSNxhAF8zcsew
SsddcDUazocHCQ7yuitg5IYW3h8j7gnVghf+SDQCqobvecDR2R8D6bkZ7JGS GMbiTtZCD17is0H0
TAxy3e8ZtF9ciBOJ/QyBS+s7PFGg/vlP99eHcPjzsyU12WCVd1ik7E7HAP/W DVhY3FsNXLJ5TRHo
vGSmUZDDZe6ZCRycyXVuVJBjCVvGRejlR50teT4zOWIeGzvkgul+FBT3Op6c C47Jj4TiXsezc/Eh
Z0IIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQs7M5TJVdhnX /ilNyn/2X9Bu9dwV
/JYtBv3jUn2pB40QcllV1pfPBVe46rRvH4n7om2qx7JonOImKcuI6obc391X ddURcylaKjgxXprw
btu3hq1RASOxaansNVNQ3OpvaEjID8uIGuR18YXFiNvXt8I2lcyLIY7Abb7j A6O4yV0A0SwFFy3W
4sV9sUO3FzecfF9au9revyMM4gvixi0IuUPciR1VH1YKRZdCcZPn0JmWbBb3 xVRSM28sbjwtcXYp
brKey3Jawk8j6ufM0uYRJT4qO/7MXT2dUW6fG0tsfzN9rZLEd8ke85cDIa/F Q2RJbZNXhOImhBBC
CCGEEEIIIeQw0kslYf9leBKuc6mGkAO45NfFL2FPutV2UdzkcAbrs8HqP7u0 NfvmDNVNjma8Ptvv
d+u8L84OxU1eheH67EXcaoVUKXqd9q2aK6e4yeEM12e7JazFT6mjlClu8hqM 1meb/a5JcW11OcVN
jme0PvuivhsJ13nHhkU/EPJJ8FQg+VgobkIIIYQQQgghhBBCCCGP5nLJv3Yw /voBIa+MWyBS95XC
Cy7kzbnU5VBtScjFPlLj5D3R66GWlX7ukSM4eU8u6nsy4KeCKW7yvuj5NcVN PoqL/cdpCfkY1D1q
inrS+VF6QgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGE EELI2ZHVBX+Lrlwf
dd2loNPshXq4g1fJCu4Ld1jn8X3eYHFzEDK9tTUCGTerf6TuFNc0PJVJBx+B TO6bbz1p47G53Wjt
QUEcKe4qafUMKviE4kZQ3HeZ2SRuNWO4PpW20z60ZkrcP0W/M5VaKssubVA5 qNaujRNnzadoV6ph
3upWVdyOaNg1coXBqokjthLodem5zmtouAwPLUHRMA452gFHTTlARzzb0wKx ubEJcb0NPXW19fGR
kh2x0JdN4pbwVPQznRQkbtFNUCPdUVV0izh1BsJSbxQyaCy+I6EB8A8Le8Zd q5g++9bWsw96g3OR
dcvaiRlMC7p7qgSbxLNKOulDJzHYcMRQz1aL2+ncZiToP4jbHFDQVvcniDvk aCLfOqDQOIkKNHD9
AgGXfmSxLwL8r+xDLIudS0Yd6ackD8sfYNjlTCFpp2VQ241/cWBAtuepWVHT hObaTCv0yY6xuEXq
kOUaiioCfdTOxIaVC8OZFD9E2TdQbAYFrGOBEgmtZsSd2s/CVXs7Mo12eq3U UYkHGHdZaaKXv+R1
F6clHXEba9b2anHDlxge0+bEjSP340GqWldnKG7UmVDWFXcMOM0LNJ66w64K tJ+FO4xB0r2DyFUg
ONl6a9IsFvcg8UhHfWtjVC6DwdtOZFrMHxeUlNA20f3vHplKzlDc7pXvo8rF DTs79CH5Tux1og+S
hTv7euyOnenhnK2Kc5MlfexEkvAHB3SFuOsEQKmt+ss+dxepbZcnS3j1Y6PU RDQz5kN+7fXU2ZL4
1mRy7lr5BMX3eXDqob067fQyhCQ+at0qni3RL2TxzmHUNUE4Fy6RMQB81GB5 GVRVgbjcFHf0/bmY
1Ik98KYn4ESdhMjfiKPD3eb/OVE/PRdHJ7sfyytF96w+voP/x0e9+k33NcJ+ ZCyvFN2z+vgO/p8Q
9R7vuUcnux/LK0VHCCGEEPJALu1WlGpXATdWdbW6d16dnDzJfKOvX1Z0bFXl p4Iimd13l8dHGMwC
VftXu/ENRtubuUQxZ+J2e6G4Rf0ds0rcKzs21+Brct89/EYycfy2HtPY7Grp IRo5k7hDNce6z7vP
FPcUzx1AlcGZ47fR8XPfoiYCvTuAfcR9nXf47WT3Iu6w9BdcllIXWG9XouLl T3NRT/yZsaXDbXLy
9/Hr91+p+qnP9a62exnQbtvLTKfuKG1Lz4FqwTIImzK9q/nSDa5RWKPAkN2H TPgOgHhbMx+TyZ4P
26QhD8plo3kzVgvIhEuPCQVvJ4fMBrNC3Jd8O62Wr3Mo5mnVrF5DkK5MiAsJ bkpUo+CXOuKpuHUV
q9H2ojCVXYX2IsrKrPa/1CZqZBqWoRNr2JtU2yVp1qr9esmr1X2doJJAayB2 DAqmYYarPTseWSNF
x6m8zIh7+aiIVFxWiFvJUcmyrSTovAS6L5FFDbf+qj2JHjrF8YiCURIJOC0r +GjNNDRvQ6jeTCfC
kJ177VRrdfKgkn0+CGh6TQ+8kRD2GnGX5dPiVeRh/uF2m+26HMqsIApLfNpU Q5x47TLgWG7FPdDD
JnHD8aTnx5YlVSYaDqJNOxHN6z70xO2rmVmMqWLNdAXvg5gUtxOzfycpWe++ 9DxrStxFzaLNJ8dL
3G223RidTkvayF1MrfhQuuJug/ejxN0bYLtKycWdvgNDo6vFXUZlM02snsEw PJeNMuFpYy/6h2yL
uMG/C67Wm3Orj5H+iyB+Ca+feo+mJVlO62eOVJNfeaYGKf7SPkD6wevr6ys0 6OnmK51zf41iTF7g
E2pBqegFlQSKPa2dc/sjmYwQm8Stz474RzM7aduLaMMibbPk107D4+QFLTL2 VYt+G8sGh6G426Da
RqrFZEyffqsIPvTbyJe1qVrHA2yiK192hzEeTShT9iirPhR4tqQoL+A0ic9L HlQJnQqBfYWchc74
jtrGX+bNt7XXb4qz4v4w8n7flZCTZnM7MGFrs3hv1i/3cHQGV+WD4t6TlxD3 Z9F7w6K494TiJoQQ
QgjZj/vOXrhzmnfOwZ4xhVtjs5MKTi7fkM5Ro7h7+6n21+excnzBAe5J4n7B nr4leEVyvFLmLlWB
ZnFZr1ml6sq7XkvbaS+FhWrQM+5Tu0iYhluarqY6GC7gWV8mpOzypr3yekuZ uc4ZQrKXHMOV0eAu
CQJ16qMu/4X1Acnl/3AdFzTL13UB07ComKbpwuGwiAEHXYJjYygY0+Le0MEW TnLx39ctJa9ri52v
Lxyl6Qpc21Hc2umwGNtNBN8cmyX4DxzDyWazJtvuqbWVkx7iuFY6K61LO7ob OziqH8KL8ZmXmSrO
M6L7Y9/2oLiDZbfvk8bteXGDRK889jPidupaLW4bJRxFB+FuEnf+koyLr+Mc BoSuk2FequCdIvTO
x5GmGe/7IHnPj9z68Uni7jUt09WG7w1PGLl1OmdG+JWhh4NgRn/Xu+Bv9u3E mvgA6jtat88w0YNm
plrfZCq0fhMkg76Hju+qlC0d1CNp1umvO0KH9U2UVuN2Mwuin6BPAK9Irm9P aOVv3sw0LS23oDz1
qtqCJshDL+hw/IJE3PmLTR30Qbcno7Mlaei2uJQYi93VemfdlSQIlAaTIPJh 3P2W/CqqSON4lQDJ
7tx96F9FOzCOr/I6AZKdecCZglfRDo7jo06FEEIIIYQQQgghhBBCCCGEEEII IYQQQgghhBBCCCGE
EEIIIX1ERN3wd1R5atdky6xs0iJqKZ1aoe5yi0G33Y/CuZBB9VjQvPb7KdqV CO7FilSdEhlsh7Jt
Utyu2F7bFYca9tPd6xjcsd61VJqUMtUrkK6ploL9UtxrWCNuVOFdxI2b2jty Y0l3xL26N95rrxnF
fTf6vU/afYDbIZR6i+tYod391xgBe8SXm5th15tq14Ht9gyFZKJTWyKiLLqb EGuDqt+trjiD9Vm8
s7HKlmmO+l4kBNwct8Y23KUw3FLc9QX104/5p6bOufFt1xdpwwr2vu2lhDrF HZrshu/1mNrjKgJD
Mk/hVojY7i+1ja2bNHK9cF2RpHrx3VRtXRIkBKmc1Sm6P1DZkZn9AHUCxD1J lJQe656U4x7YUI82
gsv9PFWSh9iwF2msu0HcpjrMZUfcZdRdJW7c1bTXRKfCvB2LPT516BiJW8K8 prUq3oYXdy0E1cSa
VNHprUeIG0ahejESd0ieS6dy7Idcn2AfZ7FporgHiNsAQyQcfHuS0U/Thyju oBPphoScP2jkhh1e
HgbiHr6PqfpZuN2RG7+hUNwAPZaAOUAu5VQy0jnASgrYYuftWsvOKLA7cksn 0vDStdu4w74rQKki
WTa8B8G9FhUhEjdH7jnaRZzlb336W6z/hQphErLubIl7g9XnUMzH/+DDCMxt mQMv4Jnqt+3DzUNo
ZNs3A8t7jq2uAgL5sRdxkrMl4ZVmxG3TpNPt0kkO4y3zHwfGu7ohPRuSPCev z1seL4qbzPCexyuc
RH6iuAU9JYQQQgghhBBCCCGEEELIp/H/AYDeyHrbFn5QAAAAAElFTkSuQmCC
------=_NextPart_000_000D_01C621E5.09FD2410--
Attached files
------=_NextPart_000_000D_01C621E5.09FD2410
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_000E_01C621E5.09FD2410"
------=_NextPart_001_000E_01C621E5.09FD2410
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Fredy,=20
Tan s=F3lo quta el :Delete().=20
De la documentaci=F3n:
"Fredy" <fredy@navegandoconxailer.com> escribi=F3 en el mensaje =
news:[email=a20b86f20a828c7effad82b0bea@news.xailer.com...]a20b86f20a828c7effad82b0bea@news.xailer.com...[/email]
> Hola,
>=20
>=20
>=20
>=20
>=20
> Tenemos el siguiente c=F3digo (estoy utilizando advantage y ficheros =
adt)
>=20
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D
> With Object ::oDbfLinfac
> :OrdSetFocus(0)
> :GoTop()
> Do WHile !:Eof()
> LogDebug(:Factura,:Recno())
> If :Factura =3D nClave
> :Delete()
> LogDebug( "DELETE", :Recno() )
> endif
> :Skip()
> Enddo
> End
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D
>=20
>=20
> Pues bien, cada vez que hace un delete, se me va al principio de la =
tabla.=20
> Esta es la salida que da el debug:
> Estoy borrando las l=EDneas de la factura 25. en la posici=F3n #19 =
encuentra=20
> una l=EDnea de dicha factura, la borra, y el la #20 me da el recno 1, =
en lugar=20
> del 104 que es el siguiente
>=20
> #1: 48 1
> #2: 5 2
> #3: 31 3
> #4: 7 4
> #5: 10 69
> #6: 63 83
> #7: 63 84
> #8: 62 85
> #9: 11 88
> #10: 12 89
> #11: 9 93
> #12: 9 94
> #13: 30 95
> #14: 48 96
> #15: 16 98
> #16: 30 99
> #17: 30 100
> #18: 31 101
> #19: 25 103
> #20: DELETE 1
> #21: 5 2
> #22: 31 3
> #23: 7 4
> #24: 10 69
> #25: 63 83
> #26: 63 84
> #27: 62 85
> #28: 11 88
> #29: 12 89
> #30: 9 93
> #31: 9 94
> #32: 30 95
> #33: 48 96
> #34: 16 98
> #35: 30 99
> #36: 30 100
> #37: 31 101
> #38: 25 104
> #39: DELETE 1
> #40: 5 2
> #41: 31 3
> #42: 7 4
> #43: 10 69
>=20
>=20
> En cambio, hay veces que casi lo hace bien. fijaros que el al =
posici=F3n #21=20
> s=ED ha saltado bien.
>=20
> #1: 48 1
> #2: 5 2
> #3: 7 4
> #4: 10 69
> #5: 63 83
> #6: 63 84
> #7: 62 85
> #8: 11 88
> #9: 12 89
> #10: 9 93
> #11: DELETE 1
> #12: 5 2
> #13: 7 4
> #14: 10 69
> #15: 63 83
> #16: 63 84
> #17: 62 85
> #18: 11 88
> #19: 12 89
> #20: 9 94
> #21: DELETE 106
> #22: 23 114
> #23: 51 122
> #24: 49 125
> #25: 48 126
> #26: 19 149
> #27: 7 150
> #28: 48 159
>=20
>=20
> Si en lugar de los datasets lo hago "a pelo" funciona siempre bien
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D
> SELECT( ::ODBFLINFAC:ALIAS())
> SET ORDER TO 0
> GO TOP
> DO WHILE !EOF()
> LOGDEBUG(FACTURA,RECNO())
> IF FACTURA=3DNCLAVE
> IF RLOCK()
> DELETE
> LOGDEBUG("DELETE",RECNO())
> UNLOCK
> ENDIF
> ENDIF
> SKIP
> ENDDO
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> Fijaros que la linea #22 se queda "quieta" en el registro borrado =
hasta que=20
> hacemos el skip
>=20
> #1: 48 1
> #2: 5 2
> #3: 7 4
> #4: 63 84
> #5: 11 88
> #6: 12 89
> #7: 48 96
> #8: 16 98
> #9: 19 106
> #10: 23 114
> #11: 51 122
> #12: 49 125
> #13: 48 126
> #14: 19 149
> #15: 7 150
> #16: 48 159
> #17: 4 161
> #18: 17 162
> #19: 48 243
> #20: 46 244
> #21: 37 263
> #22: DELETE 263
> #23: 37 264
> #24: DELETE 264
> #25: 48 265
> #26: 47 267
>=20
>=20
>=20
> Creo que :delete() hace directamente el skip, lo cual, aunque no se =
ajusta=20
> estrictamente a lo que estamos acostumbrados, no tiene por qu=E9 dar =
estos=20
> resultados.
>=20
> Creo que este problema est=E1 relacionado con uno que coment=E9 hace =
un tiempo=20
> sobre las tablas advantage y el reusedel.
> Desde la versi=F3n pre5 de xailer, creo recordar, TODAS las tablas adt =
hacen=20
> el reusedel aunque nosotros le digamos que no lo utilice.
> Es posible que al borrar un registro y estar el reusedel activo, ponga =
todos=20
> los campos a 0, lo borre, haga un skip y por eso nos encontramos con =
el puntero=20
> en top en lugar de en el siguiente registro al borrado.
>=20
> =BFqu=E9 os parece?
>=20
> Un saludico,
> Fredy
>=20
>=20
> PD: =BFalguien est=E1 usando xharbour en modo consola o con fivewin y =
ha detectado=20
> alg=FAn problema similar con los ReuseDel?
>=20
>
------=_NextPart_001_000E_01C621E5.09FD2410
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.2802" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV>Fredy, </DIV>
<DIV>Â</DIV>
<DIV>Tan s=F3lo quta el :Delete(). </DIV>
<DIV>Â</DIV>
<DIV>De la documentaci=F3n:</DIV>
<DIV>Â</DIV>
<DIV><IMG alt=3D"" hspace=3D0 =
src=3D"cid:000801c621dc$a8367220$0e00000a@ozlan.local"=20
align=3Dbaseline border=3D0></DIV>
<DIV>Â</DIV>
<DIV>"Fredy" <<A=20
href=3D"mailto:fredy@navegandoconxailer.com">fredy@navegandoconxailer.com=
</A>>=20
escribi=F3 en el mensaje <A=20
href=3D"news:a20b86f20a828c7effad82b0bea@news.xailer.com">news:a20b86f20a=
828c7effad82b0bea@news.xailer.com</A>...</DIV>>=20
Hola,<BR>> <BR>> <BR>> <BR>> <BR>> <BR>> Tenemos el =
siguiente=20
c=F3digo (estoy utilizando advantage y ficheros adt)<BR>> <BR>> =
<BR>>=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D <BR>=
> With Object ::oDbfLinfac<BR>>Â=20
:OrdSetFocus(0)<BR>>Â :GoTop()<BR>>Â Do WHile=20
!:Eof()<BR>>ÂÂÂ=20
LogDebug(:Factura,:Recno())<BR>>ÂÂÂ If :Factura =3D=20
nClave<BR> >ÂÂÂÂÂ&a mp;nbsp;=20
:Delete()<BR> >ÂÂÂÂÂ&a mp;nbsp; LogDebug( =
"DELETE",=20
:Recno() )<BR>>ÂÂÂÂ =
endif<BR>>ÂÂÂ=20
:Skip()<BR>>Â Enddo<BR>> End<BR>> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D <BR>>=
;=20
<BR>> <BR>> Pues bien, cada vez que hace un delete, se me va al =
principio=20
de la tabla. <BR>> Esta es la salida que da el debug:<BR>> Estoy =
borrando=20
las l=EDneas de la factura 25. en la posici=F3n #19 encuentra <BR>> =
una l=EDnea de=20
dicha factura, la borra, y el la #20 me da el recno 1, en lugar <BR>> =
del 104=20
que es el siguiente<BR>> <BR>>=20
#1:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂÂ 1<BR>>=20
#2:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#3:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
31ÂÂÂÂÂ&nbs p;ÂÂÂ 3<BR>>=20
#4:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#5:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
10ÂÂÂÂÂ&nbs p;ÂÂ 69<BR>>=20
#6:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 83<BR>>=20
#7:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 84<BR>>=20
#8:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
62ÂÂÂÂÂ&nbs p;ÂÂ 85<BR>>=20
#9:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
11ÂÂÂÂÂ&nbs p;ÂÂ 88<BR>>=20
#10:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
12ÂÂÂÂÂ&nbs p;ÂÂ 89<BR>>=20
#11:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 93<BR>>=20
#12:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 94<BR>>=20
#13:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;ÂÂ 95<BR>>=20
#14:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂ 96<BR>>=20
#15:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
16ÂÂÂÂÂ&nbs p;ÂÂ 98<BR>>=20
#16:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;ÂÂ 99<BR>>=20
#17:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;Â 100<BR>>=20
#18:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
31ÂÂÂÂÂ&nbs p;Â 101<BR>>=20
#19:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
25ÂÂÂÂÂ&nbs p;Â 103<BR>> #20:=20
DELETEÂÂÂÂÂ& ;nbsp;ÂÂÂ 1<BR>>=20
#21:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#22:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
31ÂÂÂÂÂ&nbs p;ÂÂÂ 3<BR>>=20
#23:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#24:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
10ÂÂÂÂÂ&nbs p;ÂÂ 69<BR>>=20
#25:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 83<BR>>=20
#26:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 84<BR>>=20
#27:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
62ÂÂÂÂÂ&nbs p;ÂÂ 85<BR>>=20
#28:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
11ÂÂÂÂÂ&nbs p;ÂÂ 88<BR>>=20
#29:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
12ÂÂÂÂÂ&nbs p;ÂÂ 89<BR>>=20
#30:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 93<BR>>=20
#31:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 94<BR>>=20
#32:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;ÂÂ 95<BR>>=20
#33:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂ 96<BR>>=20
#34:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
16ÂÂÂÂÂ&nbs p;ÂÂ 98<BR>>=20
#35:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;ÂÂ 99<BR>>=20
#36:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
30ÂÂÂÂÂ&nbs p;Â 100<BR>>=20
#37:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
31ÂÂÂÂÂ&nbs p;Â 101<BR>>=20
#38:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
25ÂÂÂÂÂ&nbs p;Â 104<BR>> #39:=20
DELETEÂÂÂÂÂ& ;nbsp;ÂÂÂ 1<BR>>=20
#40:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#41:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
31ÂÂÂÂÂ&nbs p;ÂÂÂ 3<BR>>=20
#42:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#43:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
10ÂÂÂÂÂ&nbs p;ÂÂ 69<BR>> <BR>> =
<BR>>=20
En cambio, hay veces que casi lo hace bien. fijaros que el al posici=F3n =
#21=20
<BR>> s=ED ha saltado bien.<BR>> <BR>>=20
#1:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂÂ 1<BR>>=20
#2:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#3:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#4:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
10ÂÂÂÂÂ&nbs p;ÂÂ 69<BR>>=20
#5:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 83<BR>>=20
#6:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 84<BR>>=20
#7:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
62ÂÂÂÂÂ&nbs p;ÂÂ 85<BR>>=20
#8:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
11ÂÂÂÂÂ&nbs p;ÂÂ 88<BR>>=20
#9:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
12ÂÂÂÂÂ&nbs p;ÂÂ 89<BR>>=20
#10:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 93<BR>> #11:=20
DELETEÂÂÂÂÂ& ;nbsp;ÂÂÂ 1<BR>>=20
#12:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#13:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#14:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
10ÂÂÂÂÂ&nbs p;ÂÂ 69<BR>>=20
#15:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 83<BR>>=20
#16:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 84<BR>>=20
#17:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
62ÂÂÂÂÂ&nbs p;ÂÂ 85<BR>>=20
#18:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
11ÂÂÂÂÂ&nbs p;ÂÂ 88<BR>>=20
#19:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
12ÂÂÂÂÂ&nbs p;ÂÂ 89<BR>>=20
#20:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
9  ; 94<BR>> #21:=20
DELETEÂÂÂÂÂ& ;nbsp;Â 106<BR>>=20
#22:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
23ÂÂÂÂÂ&nbs p;Â 114<BR>>=20
#23:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
51ÂÂÂÂÂ&nbs p;Â 122<BR>>=20
#24:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
49ÂÂÂÂÂ&nbs p;Â 125<BR>>=20
#25:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 126<BR>>=20
#26:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
19ÂÂÂÂÂ&nbs p;Â 149<BR>>=20
#27:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
7  ; 150<BR>>=20
#28:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 159<BR>> <BR>> =
<BR>> Si en=20
lugar de los datasets lo hago "a pelo" funciona siempre bien<BR>> =
<BR>>=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D <BR>> =
SELECT( ::ODBFLINFAC:ALIAS())<BR>> SET ORDER TO=20
0<BR>> GO TOP<BR>> DO WHILE !EOF()<BR>>Â=20
LOGDEBUG(FACTURA,RECNO())<BR>>Â IF=20
FACTURA=3DNCLAVE<BR>>ÂÂÂ IF=20
RLOCK()<BR> >ÂÂÂÂÂ&a mp;nbsp;=20
DELETE<BR> >ÂÂÂÂÂ&a mp;nbsp;=20
LOGDEBUG("DELETE",RECNO())<BR> >ÂÂÂÂÂ&a mp;nbsp;=20
UNLOCK<BR>>ÂÂÂ ENDIF<BR>>Â ENDIF<BR>>Â =
SKIP<BR>> ENDDO<BR>> <BR>> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<BR >> =
Fijaros que la=20
linea #22 se queda "quieta" en el registro borrado hasta que <BR>> =
hacemos el=20
skip<BR>> <BR>> =
#1:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂÂ 1<BR>>=20
#2:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
5  ; 2<BR>>=20
#3:ÂÂÂÂÂ&nb sp;ÂÂÂÂ=20
7  ; 4<BR>>=20
#4:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
63ÂÂÂÂÂ&nbs p;ÂÂ 84<BR>>=20
#5:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
11ÂÂÂÂÂ&nbs p;ÂÂ 88<BR>>=20
#6:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
12ÂÂÂÂÂ&nbs p;ÂÂ 89<BR>>=20
#7:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;ÂÂ 96<BR>>=20
#8:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
16ÂÂÂÂÂ&nbs p;ÂÂ 98<BR>>=20
#9:ÂÂÂÂÂ&nb sp;ÂÂÂ=20
19ÂÂÂÂÂ&nbs p;Â 106<BR>>=20
#10:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
23ÂÂÂÂÂ&nbs p;Â 114<BR>>=20
#11:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
51ÂÂÂÂÂ&nbs p;Â 122<BR>>=20
#12:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
49ÂÂÂÂÂ&nbs p;Â 125<BR>>=20
#13:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 126<BR>>=20
#14:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
19ÂÂÂÂÂ&nbs p;Â 149<BR>>=20
#15:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
7  ; 150<BR>>=20
#16:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 159<BR>>=20
#17:ÂÂÂÂÂ&n bsp;ÂÂÂÂ=20
4  ; 161<BR>>=20
#18:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
17ÂÂÂÂÂ&nbs p;Â 162<BR>>=20
#19:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 243<BR>>=20
#20:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
46ÂÂÂÂÂ&nbs p;Â 244<BR>>=20
#21:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
37ÂÂÂÂÂ&nbs p;Â 263<BR>> #22:=20
DELETEÂÂÂÂÂ& ;nbsp;Â 263<BR>>=20
#23:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
37ÂÂÂÂÂ&nbs p;Â 264<BR>> #24:=20
DELETEÂÂÂÂÂ& ;nbsp;Â 264<BR>>=20
#25:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
48ÂÂÂÂÂ&nbs p;Â 265<BR>>=20
#26:ÂÂÂÂÂ&n bsp;ÂÂÂ=20
47ÂÂÂÂÂ&nbs p;Â 267<BR>> <BR>> =
<BR>>=20
<BR>> Creo que :delete() hace directamente el skip, lo cual, aunque =
no se=20
ajusta <BR>> estrictamente a lo que estamos acostumbrados, no tiene =
por qu=E9=20
dar estos <BR>> resultados.<BR>> <BR>> Creo que este problema =
est=E1=20
relacionado con uno que coment=E9 hace un tiempo <BR>> sobre las =
tablas=20
advantage y el reusedel.<BR>> Desde la versi=F3n pre5 de xailer, creo =
recordar,=20
TODAS las tablas adt hacen <BR>> el reusedel aunque nosotros le =
digamos que=20
no lo utilice.<BR>> Es posible que al borrar un registro y estar el =
reusedel=20
activo, ponga todos <BR>> los campos a 0, lo borre, haga un skip y =
por eso=20
nos encontramos con el puntero <BR>> en top en lugar de en el =
siguiente=20
registro al borrado.<BR>> <BR>> =BFqu=E9 os parece?<BR>> =
<BR>> Un=20
saludico,<BR>>ÂÂÂ Fredy<BR>> <BR>> <BR>> PD: =
=BFalguien=20
est=E1 usando xharbour en modo consola o con fivewin y ha detectado =
<BR>> alg=FAn=20
problema similar con los ReuseDel?<BR>> <BR>></BODY></HTML>
------=_NextPart_001_000E_01C621E5.09FD2410--
------=_NextPart_000_000D_01C621E5.09FD2410
Content-Type: image/png;
name="Image1.png"
Content-Transfer-Encoding: base64
Content-ID: <000801c621dc$a8367220$0e00000a@ozlan.local>
iVBORw0KGgoAAAANSUhEUgAAAtwAAAJqCAMAAAAv5GczAAAAB3RJTUUH1gEZ EhgF9RF//wAAAAlw
SFlzAAAOwwAADsMBx2+oZAAAAARnQU1BAACxjwv8YQUAAAAnUExURf///wAA AH8AAAAA/+zp2Kyo
mcDAwAAAZszMzGZmZgAzZgBmzP/MAKabby4AACufSURBVHja7Z2NguK4DqWt YqfuzG6///NuV0Fs
/RzZToAEyPlmuiCxLcnKwZjEkPJNyIdSjg6AkGdBcZOPheImHwvFTT4Wipu8 OsUx3/D6IBqz/V0r
mHa3slDPgXdPt+ibx7sTu+RtKf8zPFDcUivoZhLEncgP7uw0kUTciaFJl+Sd eaK4Zamgm6ndHfnJ
anFLKu5J80Jxfxzlf7+zkX///lf+/Xe9uH9RwtAjtrgyvRnqfX9jg2anzLZY b57i/jzK//79ofz+
BeL+kzZUz5G4v7W44ywFTMr96G932oqqxbdpEV5SsXLfgKlI3prrtOTv+I2n JX/+AHX/+WEo7m/w
CTOIENRztcQI0MTRsRsjQlMlZMBUJG9N+d9///33o+zy9/E/L+5fGcdG28Qt I3HfaodaYED//s5f
Dv0wvr+93juvJ/LW/J2WlNvo/Rcn7j9/cnWvEbcqiNOSOnGxjUBlq7tUzYn5 UBkaiK898rb8zLlv
Z0r+/c/Nuf/86ah7hbjRJm4SGrkabooz0aLz2pl5PZF35nfkLreB247cf/70 1P0McaNJi79wE+cP
k+IOlaEBu5O8NX/F/d9///6O2//5kfv/Vv4faKieP0TcUKpQaZLqNY2I4j4j nZF70FA9f4S42yc7
W6vuzGYawS8yjypDAxT1B1FuQzaac/cbqufZHMPsyMQ9OwEW12RS3LmQKe5P 5zpyLzznCiU6DeHr
TXy6654n6X0E/U4qQwMU+edw79qSX6y47aTVbYPdTvt2jhLPc5smduNbazMJ 4xtUcgY45f4Q7l3y
+gsWt99hqvbrBaUJMPUdyr6RuL9h5dTAt2tHTshQ3LrMCBLXC58oJewMFym9 eL+BuL9BZfvysAbs
TnJK+E0c8rFQ3ORjobjJx0Jxk4+F4iYfC8VNPhaKm3wsFDf5WAohhBBCCCGE EEIIIYQQQgghhBBC
CCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCEHcr2F2FTN1QV3WSXk XkT9nal5XxVZ34SQ
rVDc5GNp4r7OTuT2X1GTlaXkVrUVynVjqXL9AxubCtYfIU+izrlv/2T5V5Sc y6LhYgpbVVUlb6yF
7a0S8njqyO3k18q8uAvQZyzTqsUVCsVNnksq7nYS5Ta2a32KiB+vvbDrKyQ0 VkYobvJEMnG7mUUJ
+ixgSE8aD4Z9Qp5DR9wyoU8w5y5e3IKttwJCnkK7iGNnFrczIcWWtEJ0tqSp 1ZwtcRWWCU9tTH2T
14TKJB8Jz1OTz2VyVQohhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQs7D /yEfztEKo7jJs/jn
aIUdKu5/dmAXJyTyN/FHK+xYce/h5cwpPhKKewcvZ07xkVDcO3g5c4qPhOLe wcuZU3wkFPcOXs6c
4iOhuG+/F/jz231P+o2dq7jVraUmf6vK/r7sqHLtRP5bQf27W61y9xZQ3D/U H7Z8jpcfJ+ruO+1P
n7Vqg8bDU0FFqZ+3ljrF/cNzfxfNi9s9S9kubuyH4j4VceSus5PZ+1POeGni vlku+pePS2kTFfd7
yqAmrNKM+FtYLb+XLDEE5R27k/Zzy++pcYr7By1uaXd9etAhrXPuq6+ib6XT uzFU+2n7vKb+gW8r
bvSL+CEEs+ndiWv+dlDcP5iR+0niXtyMxF3qnrRmCdJtReJqaQXHELruwJ0i 3guK+4edxN2XrJ2W
2Jr2TEuZEre6pZSeYzVzeqaD3FHcb82O4gbTBSBuXyXeWmRa3HH4NUWqYeaO 4n5rdpxzT4lbD55r
ZuetqP1xRgTrvpTcHcX91ux4tqRNLdDZEndeQpa7bOOazkotMW6qkfo0hFDV jd3VOjxb8o7Ey+/P
OIy8/H4QFLeF4v4gKG4Lxf1BUNw7eDlzio+E4t7By5lTfCRnFzf5ZE4u7p2+ hE2O4PTi3sPLmVN8
JBT3Dl7OnOIjobh38HLmFB8Jxb2DlzOn+Ego7h28nDnFR0Jx39YToSuTD7pc eXMCzA+/dt9bvvWm
q5l2hOJuC+c8459BmPTyT9pi8LX7uPBWkucEQHHn4s5ZN2haccu8oSj9+J1J kkNxa3G3VdVqfbMU
cau866/fuBaZFyXuZrJttoXkbjF5+ILQ4vNm6+j0vToUtxJ3fdRL9UXJLnwJ TX2/IVd3E3eVtJhR
uecGfvNN1DfKSArFbT5QmqGxbWT/9Jjb8bKIW33zBYg7+xIn/Frn2371a08o bj3mmkEYjtZW8KYg
9xJH7pG49YuMI/dWKG77XUKk2zhwhkrd7xmiOfdw5M5LOeeeheJeK+575tyl tO+aT0xLzJP2lqEs
kR4Ut52WmOmAALWZKcv6syU3N31xF/cZQDk05wWPTt+rQ3Hv4CW/iHMXFPcA insHLxT3MVDcO3hJ
1pbcCdeWjKC4d/By5hQfCcW9g5czp/hIKO4dvJw5xUdCce/gpd0ybc2HQFld sBa33LBT8e5bpXWt
5sX9uEdn/CnuHbzcfkp2ZbOJ+rKlEaosQzti/4Ra8ug+Dn1R3H0o7qxZR9y4 2aPFHZYYSCiUkRmK
ewcvSty364+/z9Tq2rA+pf2i9rLj9hPaVxtL42jOtirBep0FaA/67maC7Thx j26V1n7A3lkuusPV
ql2wpuxJawBfSfE3xVU1insHL1bcy2FvS0WWh2KOqdujWoYWcM+CLRHowTyD dqy4QS1wq7Tgw3em
5ST0wIvbfYPJ/ovduyWe4n66FyzukgmqdPakN/bIRIkqwL1BVD1xl2is1Leh fp/MU5eT1eJuVVAt
insHL07c4V5hubjd/eJrS93C34tsnbibSXOLs5G4O7dKS/vkOmNygiIqMPBl v5Si46C4PYeN3GV+
5C62+kSLtSN3CKsAO6NpSVLkIvSdSUburK/aghTThuL2vMq0RJAQHjYtgUe/ Ny1BdowWVdD6ad/O
ummJ8RXFrfxR3Jhjz5aoIwLOlrjzFaqCVZU7O6FaVSWBsxDOg27V1o3HsyXz t0pzE5dSQL+huNsn
0/jFVjf4tzhi966Jp7if7mXkRKbMrCZOB04Gxb2DF4r7GCjuHbwcJO5drL8y FPcOXs6c4iOhuHfw
cuYUHwnFvYOXM6f4SCjuHbzMOpHO/rWLpWen2pJthfOA7zd7p7h38PIAJ+t0 tVmF0jVBcb8TFHfa
kOJ+d/YUt7tMJ/6CZHEXK9XW7ceNvZFS4uXHtqGv2nVWjgefbam2DsCWvgkU 9w5e1E8Yx4UZxRS2
lRJ2iTNcUlLCygq4NGVy5bhbL+KLQtCvD8W9gxf9K68FrUtSQksemiiLbzKz KirZM+MzfV29PhT3
Dl7MTxj7xdzL7rJC3GFldCLuuZXjfpwXobg/gGNG7hLFXbCGEnHDCU0ycpfV 4sbhUNzvxnFz7pJI
NMy+kzm3+Rn8FdMSmRI3R+4P4MCzJW2P2VuFKFho5rzGbylarO3PlihL8GxJ rS0uFh0V+mb9a0Nx
7+Blm5MpEa1U2vsI8xFQ3Dt4We9k+t2f4u5Ace/gZYOT2Xd/irsDxb2DlzOn +Ego7h28nDnFR0Jx
7+DlzCk+Eop7By/+njiyXAhcMQV+p1NwrwLFvYOX/D6UOaGY4l4Nxb2Dl/wO winm5/fcHjIJxb2D
l/ze73q73Qf7tiV1ZXWtSdZAce/gpYpb6bTeZaYoRV+l7G8or37gjKyB4t7B i1o49Yuelhhhm3/2
PgsU93oo7h284JG7LM/1yRP7L/w0JVkDxb2Dl86c28w/ihX3MknhnHsjFPcO XrpnS8To3UxL9NpW
ins9FPcOXvB5brtAWqzISz1bohuRVVDcO3jx4t4Exb0ainsHLxT3MVDcO3jx a0u2wLUl66G4d/By
5hQfCcW9g5czp/hIKO4dvJw5xUdCce/gZflph3gzOYt0tobI2hY7zOFXncmU tUvch1DcO3hpZ0sG
61w7W0NWq2KH7xZL3lr69R8Cxb2DF4qb4t6fgy6/F/XzZtcn7Uq7/U2p3q95 u2WD7kemkl8DF3Xd
P7EkMbr2PNTHznwX9Mp0CeaUpQcnnuJ+uhf9c2pG3O4X/OwPqGmRmSWz8Wf7 lI3Oln5qTATbMDro
+doz76wU1CHo0+iZ4n5k7/c9WyJGRemBHgnBalw9laRMjdWpm+Is9YJwGhRo LOy15RT3s9n9VKA4
ccdf6xY3L+j8mjf+lW7B1qxhFYudHlSPwbszq/rXF3f7uW8VDMX9fI74QOlH 7oLe8YejXDLe6rJ0
0I3iBg/BO377iBWkF1OhuHfjQHEjxaGpd6KrbBYe5sndqXtqKX+9jefcBUXJ OffuHHkRZ5krqKfX
d3w1n+j+mrfb46Yl9qZo5qnWsWS2bXS3l4ar34Z535mCuhC/NWd+Jrx6fWDi Ke6ne9k/xQ8eAvte
9nG2AYp7By8U9zFQ3Dt4+VRxH+FsDRT3Dl7OnOIjobh38HLmFB8Jxb2DlzOn +EjOLm7yyZxc3P/s
wC5OSOT04t7Dy5lTfCQU9w5ezpziI6G4d/By5hQfCcW9g5czp/hIKO4dvJw5 xUdCcZu70xT/tKid
W394wIgb3aaPv5T2HCjueXH7kllJAnEj00cn4/OguIFs58Q9Pd42cQsWt7dG nT8GilvLVgQ89zfV
a7fQE1tL1Kp9rc9F3OiWIeruTs0a5ymPgeLWoitGcP72HkmpuaWegMF5+SZO NYPv7mQaUt4PgOIu
pQ25BYuuFnUFjpsV96M8wWbWkOq+G4q7KHGL9Efu9pMKq8VtR+6ijHLkfhYU d2ni7kwT+jPmGXED
C+nITWk/BIr7B8Ej6Oo5d1/c4WxJau3ovHwIFPcP7YyIKKnaQVTrPzy3g3Jy tqToRslLg2P2A6G4
d/By5hQfCcW9g5czp/hIKO4dvJw5xUdCce/g5cwpPhKKewcvZ07xkVDcO3g5 c4qPhOLewcs/xf62
q0Y6WxGZ3kko7jcTdwb1jaC4d/DSu1Ufxf08KO4dvFhx33N7Pglbv1fr8Y3v Tg/FvYOX6+os+6/e
BUlptH+PD3iTHLWf31XzUNw7eIHiLl68gh6y+zFR3BNQ3Dt4ua3Oave+cXJc cXu+uqFvXUNxYyju
HbxYcZeyPMCxOpYviB/AOXL3obh38LJ8WaH+FS9ukTKelnDOvRKKewcvRtx3 3Z4vOVtSeLYEQXHv
4OXMKT4SinsHL2dO8ZFQ3Dt4OXOKj4Ti3sHLmVN8JBT3Dl7OnOIjObu4ySdz cnEffcMt8lyOVtiR
4j469+TJHK0wQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBC CCGEEEIIIYQQQggh
hBBCCCGEEEIIIYQQQsjZEL91uxv7qmZ2j8AqiU3BdW83chdxOwbWpmKf6k6Z NCOd2jr4FVFJZ2ud
58zE+hRNtZBSFbTayZajNrZpNbPd0UDcMtf2ti03kTZxO9XaDftcpnyEMpmv v8as68lqk+nWvLjv
68V0VZdFijuxtchBMn1kz7eJG1WguDdVfVVxi1ylIVdZyVJcn95mCrd3n6Le a69NVZmvIkuN3JA0
AWhxN2nc/vjn+q8dPUQ5WppJ63h98cQKpj/Blm68BIhqB3G32ZbuXJEskzCN Ll89zybHdc4Zkw6S
41JRy69/VHkzKsZ6Hlg85IN0b9a2SsRNT0VnITxtHbA6Fpu6gqr0DYlq2sSt dSQT/4px6Q+oVVyI
RAcVwvehSoEpc7VLHrzunBJK9Bwtz3rWObZHCB4MkxyfCitdVb2OgkWwu/Rg yFztx4i7+HzZAx4/
LaSRoypZrdgTKId7xG1l4VXS66vtRSnTadHiVm83Ssmhg6Xj2cWReS5JOCHa /iu/JC1cHusu40gG
3egpIq29HtEf5N3LXOqLST21bsEbk3SqPEbc9S0dP9epEfsu3va442c62Bd3 t6qePbj3oTormRS3
C9RslXBA1LzGeHZTBXOMoRHnM1ToibvWn5FrNG6lLOJC2iBu4Be+TO3BhJF3 xouHitsJxj93HSoo
Fi9uuKd3bNKRLdYuSfCogyGkNNNdz6g9bFNQT2cPuxd3kM9EAnNxh26sRsxj L7okPZKGXECVjiEg
7jrorpuajBI5lnJ6bFqHMolhieZz7q64szS6IGKakXRRm9nkpB9NjIBMxV4C YTjd2g8Qt3lf0Z+6
8efcsnzGbU3R2RK7ZZQh4Fkzd3Ot3tCtp/a8zktqwC0qFX/z5I4fqGD6Y235 10GWD90bF2Q7W2L7
AT27NLbNzLMe8kIVM9u0snQ+k7MlaghRQZuKUroJ1F0o49obtf2RqCNLLJvz woS+CBQ3ZPMb/D0z
A/Jo+EYG2fwGz5kBIYQQQsgzGM+ypF8m3WZvOYWbCXpYZ13P5e62Enaqi7Zy vYZgT7LWs3X2Cqut
3MrtBcTavnp7ZJYfI5sJK/cE8Tra3haJbCjZ5FDuKgY1BMrOnawOe2JlGWxV iT9S3A+SzZPF/Tp8
urhji7G4TeGUuF0tWfw8euReD1ylvFzLMldGJV41c5eT2vpi8ZbB1Uhly8Xg TLsrWbBV7EtR/SnB
AFyZbGPKrtCF9czS6Um0Ay69gWMAkizOfo0DdQ1nOsoW7HukuAfHEGUwOX5b rlhqMdYLq+3/UGR6
YLoFmsMHZ6/oZomjYCa2in2pdfrhoD4W7xPYmIhJJLHTjdsuDIGZ6MbRy7QS h5prA3Enc+4qblsO
xO1fIjM9B13Ojt+8uAtOTMwZ7IjuAeya3up1saSO5hMTzeWqtuVJTEEtuFUZ BJvnc7JDk9FntY0e
xO0B4gah6T2xRfDsrYyOYciT72GoOmaduLM1xmFxrhapwLEIdUGtxw4LxUsb UjItxCXAkhoIS8EE
xDS5njmsxfKhoaXLfpFSmhjdGdt2q7iTF9djxV3E1sLHEC0SS8Qdl1YNWSXu +CIaNEeZl3HrfiHM
WH7Yegawr5JGEFvFMRb3JO141rjMb60Rd9Tv/uIGnvu6wmkbAxPf/o9FJgi/ hlhsc2gFBAv9OdNZ
x2f2pC9VLL/YsrueeeZlumLpchDwaD187xhuEDeoPhB30t6sh90450ZHYV7c 4CN28+AXAIfF2dXP
8nEYni1RW+JdXW35sxLRdLLK2exJPnu3euLruJXJfnSYXM/sZ2fBHOxCfrak 4CSL77OfxKVnS7Qe
/EUcI854ESdc6QHlRkzKonaKj+H4bInusz/c97LO0Ea3w2YP685OeSCRF8vg uneAOzrw4uJenwcS
ebUMrn4H+Exxcz3zI2AKCSGEEHJiBG3JoKZeAzxrepXLbRO0B0/rpsyNUhUK 7gnSn2FLHN71GUaG
1QYHf9L4HmRpkV5N6RpZ53IQx/P6OvQjM3t3OZ00tPE4cU9EKLMVn9P/ze4o 7mHh4eIe233y2ad3
EjdYS7z8QHfxF7pCjG1hMVrdDa492kt9RS8cd5c0i94jJlx3NdVcwlPlvmdm xVQn8JAMVcddCyxZ
z4trqVIClgu5lddxYXtvjXaIYs2qcpvTkIBSTO/V0RdXLQ3S5hKo6XnAtdRa 2OahHQq80K31Xrw9
Uzu6E9+shABquOLDUuJW5chV9IwDL8GOq1N6hTpYn0PxVkoWVdpclRUYRawq vaCznC7ihkObdeAO
e+dg7KbskOEQnysz3bPHJm6iY6MPfTr4JlqJ0lLJL34nfkg8h8D7daQTfoFV m1vRNboeXbg9n709
/Z5nYdZnUY/1A2WM04kbxXKEuMGCbFBmD8m1aNm2q7uzoyXYXdxZ01jtYWmt FTdaox0DL2mdrrj9
tMR0QYlbSgsFyDEsbJ8Rd2ot73nokZ+7YXE77ai+13Fa/DtlENYeZErAx9B3 L0rK7h1YH42x0eXd
4s51GYzgOkMjEoItoOtZMWg+Ke7BMe1nGe5dK+6s/y8g7nTkVmWd7t1qwSOJ rOMZZXrcOgdCR6PL
0esIe841ltaZERrMoRG3zxh86XeGhW6SpnqehQleFr2jnx322LMDxL2cz2jv R9edospUN8ROGFSt
pdx1L/40tC2WUEsZ6i/QTsXtzhmYMF0vC/KnZpZmybapBw0o1YQ14bcsJxnz IU+shgcr3VesKg85
RU7sCY4mTXfiIwuyHQyJjT6C5/VGVu1+Zd4w5MlOfETP8v5S3Jt78l6cTdzP XBGdWn7DfL5hyKEL
uA8f0DNCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEkBficpkq u4xr/5Rm5bHktt21
1wvst/1i1j8udpd65KRcVpX1pXJJKlxAy3tEdxPtRftUj2XROMV9Yn5EoEdA vfuqnjoiLkVLhYuz
04R12741bI2KGWGdCG9q9QN8G5BtgOr1gsSt/lLbJ+WqLyMKVaALixG3r2+F bSpdUONLLdGDLYgj
G3cpbjICiGIpuGixFq9PN5J6cZc40Gb+Lt04lnYXPJsfipucl83iTuyYubUX f9ku7tn4KW5S6UxL
Nov7YiqpyYcT4V3TEueX4iaR/INc/bx3Wcr1B8VL/ATqz8zV0xXVka1QnF00 nRmJOz0VmExjCDkG
ipF8JBxoCSGEEEIIIYQQQgg5kuwMXbo6u2er/in2GSGH0FmffQl70q2269Kp QMguDNZng9V/Zp33
xV8Ob9/kObpn5OyM1mfH/W6d98XZobjJqzBan13FrVZIlaK223IpU05xk8MZ rc82I7drouvGJd0U
NzmYmfXZWvcFiftCcZNXZLA+W20m67xjw6IfCPkk1n6FjJC3geImhBBCCCGE EEIIIeRlSX9x4fYj
OvH3u4vdwVN/5GVJ1nPXn0O7dJtS3OQFmf697VvNVsr12+S1Ga/nbuJ3X1bg +m3y2gzXc5e2XzeJ
vwpLcZMXY7ieu5VT3OS9GK3nvvgpC8VN3obReu6ylJf4+903C+aBkLcn/WoO IW/OxV/VobgJIYQQ
QgghhBBCCCGEPBH1Q5Vqn30k5D1BXzjIFkoR8lZc6nIodU92+0iNk/dEr4da VgC6R47g5D252KWq
5ts1FDd5a/T8muImH8XF/uO0hHwMy6nA38+P7Yl5pLYJIYQQQgghhBBCCCGE EEIIIYQQQgghhBBC
CCGEEEIIIYQQQgghhBBCCCEauTJRsT1O1DZNduzJYJ9kTVeGLKD1TBKf1/mn 2pJO2YTzFcHJ1oZT
jmVUb97hzgdbgE+/Dx8lMS/d1V17mLjvMDAShcw3Xl/haZLYS9wPc/g0BITn 9z1T3I/qwQOaUty+
/e8b+PVdXL2X357Wh0UJ12dpTSlJuSxFdVOim1tcwUB1ji0XU5Tu8/3UwzuO J/FV5GbrGlt7AKak
xpI6uP5puQHZ6JhV1W3nhofVVcdp9wlUcbgGtgdNL/0eNvvdFFrpDMW9zLmr aZdKvXc5kvpZUlOM
tWILsnqpuVK8S1wVFfkOhH4acaNKqa8q56bxdmicqQkHUgZd7JiF1eOByA5r 97jZmEJNL4REL1M9
VOZgXyV2vSdu9wRkAWo80dF0QX50azxS+jH0xG2arhG3Papopxb3Mq7Ug2b1 5vyle/PctI50DeCU
4+6GbvSNZAGPDkfMeun1sPciheow6UloVcz7jgx6iPyJaqtN1WJTYC3aQnU4 bSihRRRcE11R+5oD
7ao9DdkXM4CgXrRa28VtZ1AuN+ZNe724u2/INWaB1UHabdpG4o51JPTO9VAS U9GHOQZz4o5yXSdu
k20caOweHMHU4ez2NB5u5A2MONHwaJwC+aiHxExLVoobHr2YtQ3iltQ0PGZ9 rebBpg16bbuhDMUd
FZAh+gnOAurJciAnakpqv5eipjk9rRymH2XOuotxYHHPzO+v1ebm3Kk2u0fP ZqNrFkTZFXd0P3Hc
stykryz8oaqX2Blxz47c4t6i2tOl3D4sXkZnS0y1WBDqaTfqcBoDS1XouU0e 0AQrfNgXszMcGUnC
2n62xDtweS3qkKXZ6JsVlamlC0oN+cEK1d1xs7kKZ62cc2O/Vh31EE5LoKZc AM/heZZT889xOTcM
TFlSdh4baxzCD2G992Pj3dxJijtaorh97TcUt3nLfI59uHdPZ3caemSsaH5y AKvz9GyVEEIIIYS8
B7PLuVHTHaPcUm3YSObKZLLl+g9bz6o9n5LPnhLL9j6+XmIeJ27Z0PINxP1E R68Ixf2wrlPcr0YT
N7xmplZLdJbxxmp2fa9tDy9MZXXyZcTxEpe/TtdbDZxVx0koxYZ9M+1Dy6+8 uegzE/HqHwx1dJBM
Zv2WvXIZrEho+r5UcQt8WP7ZPfpZUq0lB7bHqyBinfaAaxpLMnRsLYLqyPoi 7tx0CDJ20EbYMzHY
mRiVjuPiQhysz37bay+BtrQkSUaiepNFXK0YU8UW4MMU6gQfIzcysI3N6TgF Oh+Z7oU1Gd1crnOj
I3EntrGzzxD30hG3UjnmDa8P9ou0VYHzoBdP9xdpqzrpQYHrdVRByY4aXudc 7GH1i4WmxY2XEY3F
DRd252vj04OkCu2qZ78uSYkbrb3+jCuLorI0zFtBh7U7dpROVVxYEq/dIbtk BdjxSNxhAF8zcsew
SsddcDUazocHCQ7yuitg5IYW3h8j7gnVghf+SDQCqobvecDR2R8D6bkZ7JGS GMbiTtZCD17is0H0
TAxy3e8ZtF9ciBOJ/QyBS+s7PFGg/vlP99eHcPjzsyU12WCVd1ik7E7HAP/W DVhY3FsNXLJ5TRHo
vGSmUZDDZe6ZCRycyXVuVJBjCVvGRejlR50teT4zOWIeGzvkgul+FBT3Op6c C47Jj4TiXsezc/Eh
Z0IIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQs7M5TJVdhnX /ilNyn/2X9Bu9dwV
/JYtBv3jUn2pB40QcllV1pfPBVe46rRvH4n7om2qx7JonOImKcuI6obc391X ddURcylaKjgxXprw
btu3hq1RASOxaansNVNQ3OpvaEjID8uIGuR18YXFiNvXt8I2lcyLIY7Abb7j A6O4yV0A0SwFFy3W
4sV9sUO3FzecfF9au9revyMM4gvixi0IuUPciR1VH1YKRZdCcZPn0JmWbBb3 xVRSM28sbjwtcXYp
brKey3Jawk8j6ufM0uYRJT4qO/7MXT2dUW6fG0tsfzN9rZLEd8ke85cDIa/F Q2RJbZNXhOImhBBC
CCGEEEIIIeQw0kslYf9leBKuc6mGkAO45NfFL2FPutV2UdzkcAbrs8HqP7u0 NfvmDNVNjma8Ptvv
d+u8L84OxU1eheH67EXcaoVUKXqd9q2aK6e4yeEM12e7JazFT6mjlClu8hqM 1meb/a5JcW11OcVN
jme0PvuivhsJ13nHhkU/EPJJ8FQg+VgobkIIIYQQQgghhBBCCCGP5nLJv3Yw /voBIa+MWyBS95XC
Cy7kzbnU5VBtScjFPlLj5D3R66GWlX7ukSM4eU8u6nsy4KeCKW7yvuj5NcVN PoqL/cdpCfkY1D1q
inrS+VF6QgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGE EELI2ZHVBX+Lrlwf
dd2loNPshXq4g1fJCu4Ld1jn8X3eYHFzEDK9tTUCGTerf6TuFNc0PJVJBx+B TO6bbz1p47G53Wjt
QUEcKe4qafUMKviE4kZQ3HeZ2SRuNWO4PpW20z60ZkrcP0W/M5VaKssubVA5 qNaujRNnzadoV6ph
3upWVdyOaNg1coXBqokjthLodem5zmtouAwPLUHRMA452gFHTTlARzzb0wKx ubEJcb0NPXW19fGR
kh2x0JdN4pbwVPQznRQkbtFNUCPdUVV0izh1BsJSbxQyaCy+I6EB8A8Le8Zd q5g++9bWsw96g3OR
dcvaiRlMC7p7qgSbxLNKOulDJzHYcMRQz1aL2+ncZiToP4jbHFDQVvcniDvk aCLfOqDQOIkKNHD9
AgGXfmSxLwL8r+xDLIudS0Yd6ackD8sfYNjlTCFpp2VQ241/cWBAtuepWVHT hObaTCv0yY6xuEXq
kOUaiioCfdTOxIaVC8OZFD9E2TdQbAYFrGOBEgmtZsSd2s/CVXs7Mo12eq3U UYkHGHdZaaKXv+R1
F6clHXEba9b2anHDlxge0+bEjSP340GqWldnKG7UmVDWFXcMOM0LNJ66w64K tJ+FO4xB0r2DyFUg
ONl6a9IsFvcg8UhHfWtjVC6DwdtOZFrMHxeUlNA20f3vHplKzlDc7pXvo8rF DTs79CH5Tux1og+S
hTv7euyOnenhnK2Kc5MlfexEkvAHB3SFuOsEQKmt+ss+dxepbZcnS3j1Y6PU RDQz5kN+7fXU2ZL4
1mRy7lr5BMX3eXDqob067fQyhCQ+at0qni3RL2TxzmHUNUE4Fy6RMQB81GB5 GVRVgbjcFHf0/bmY
1Ik98KYn4ESdhMjfiKPD3eb/OVE/PRdHJ7sfyytF96w+voP/x0e9+k33NcJ+ ZCyvFN2z+vgO/p8Q
9R7vuUcnux/LK0VHCCGEEPJALu1WlGpXATdWdbW6d16dnDzJfKOvX1Z0bFXl p4Iimd13l8dHGMwC
VftXu/ENRtubuUQxZ+J2e6G4Rf0ds0rcKzs21+Brct89/EYycfy2HtPY7Grp IRo5k7hDNce6z7vP
FPcUzx1AlcGZ47fR8XPfoiYCvTuAfcR9nXf47WT3Iu6w9BdcllIXWG9XouLl T3NRT/yZsaXDbXLy
9/Hr91+p+qnP9a62exnQbtvLTKfuKG1Lz4FqwTIImzK9q/nSDa5RWKPAkN2H TPgOgHhbMx+TyZ4P
26QhD8plo3kzVgvIhEuPCQVvJ4fMBrNC3Jd8O62Wr3Mo5mnVrF5DkK5MiAsJ bkpUo+CXOuKpuHUV
q9H2ojCVXYX2IsrKrPa/1CZqZBqWoRNr2JtU2yVp1qr9esmr1X2doJJAayB2 DAqmYYarPTseWSNF
x6m8zIh7+aiIVFxWiFvJUcmyrSTovAS6L5FFDbf+qj2JHjrF8YiCURIJOC0r +GjNNDRvQ6jeTCfC
kJ177VRrdfKgkn0+CGh6TQ+8kRD2GnGX5dPiVeRh/uF2m+26HMqsIApLfNpU Q5x47TLgWG7FPdDD
JnHD8aTnx5YlVSYaDqJNOxHN6z70xO2rmVmMqWLNdAXvg5gUtxOzfycpWe++ 9DxrStxFzaLNJ8dL
3G223RidTkvayF1MrfhQuuJug/ejxN0bYLtKycWdvgNDo6vFXUZlM02snsEw PJeNMuFpYy/6h2yL
uMG/C67Wm3Orj5H+iyB+Ca+feo+mJVlO62eOVJNfeaYGKf7SPkD6wevr6ys0 6OnmK51zf41iTF7g
E2pBqegFlQSKPa2dc/sjmYwQm8Stz474RzM7aduLaMMibbPk107D4+QFLTL2 VYt+G8sGh6G426Da
RqrFZEyffqsIPvTbyJe1qVrHA2yiK192hzEeTShT9iirPhR4tqQoL+A0ic9L HlQJnQqBfYWchc74
jtrGX+bNt7XXb4qz4v4w8n7flZCTZnM7MGFrs3hv1i/3cHQGV+WD4t6TlxD3 Z9F7w6K494TiJoQQ
QgjZj/vOXrhzmnfOwZ4xhVtjs5MKTi7fkM5Ro7h7+6n21+excnzBAe5J4n7B nr4leEVyvFLmLlWB
ZnFZr1ml6sq7XkvbaS+FhWrQM+5Tu0iYhluarqY6GC7gWV8mpOzypr3yekuZ uc4ZQrKXHMOV0eAu
CQJ16qMu/4X1Acnl/3AdFzTL13UB07ComKbpwuGwiAEHXYJjYygY0+Le0MEW TnLx39ctJa9ri52v
Lxyl6Qpc21Hc2umwGNtNBN8cmyX4DxzDyWazJtvuqbWVkx7iuFY6K61LO7ob OziqH8KL8ZmXmSrO
M6L7Y9/2oLiDZbfvk8bteXGDRK889jPidupaLW4bJRxFB+FuEnf+koyLr+Mc BoSuk2FequCdIvTO
x5GmGe/7IHnPj9z68Uni7jUt09WG7w1PGLl1OmdG+JWhh4NgRn/Xu+Bv9u3E mvgA6jtat88w0YNm
plrfZCq0fhMkg76Hju+qlC0d1CNp1umvO0KH9U2UVuN2Mwuin6BPAK9Irm9P aOVv3sw0LS23oDz1
qtqCJshDL+hw/IJE3PmLTR30Qbcno7Mlaei2uJQYi93VemfdlSQIlAaTIPJh 3P2W/CqqSON4lQDJ
7tx96F9FOzCOr/I6AZKdecCZglfRDo7jo06FEEIIIYQQQgghhBBCCCGEEEII IYQQQgghhBBCCCGE
EEIIIX1ERN3wd1R5atdky6xs0iJqKZ1aoe5yi0G33Y/CuZBB9VjQvPb7KdqV CO7FilSdEhlsh7Jt
Utyu2F7bFYca9tPd6xjcsd61VJqUMtUrkK6ploL9UtxrWCNuVOFdxI2b2jty Y0l3xL26N95rrxnF
fTf6vU/afYDbIZR6i+tYod391xgBe8SXm5th15tq14Ht9gyFZKJTWyKiLLqb EGuDqt+trjiD9Vm8
s7HKlmmO+l4kBNwct8Y23KUw3FLc9QX104/5p6bOufFt1xdpwwr2vu2lhDrF HZrshu/1mNrjKgJD
Mk/hVojY7i+1ja2bNHK9cF2RpHrx3VRtXRIkBKmc1Sm6P1DZkZn9AHUCxD1J lJQe656U4x7YUI82
gsv9PFWSh9iwF2msu0HcpjrMZUfcZdRdJW7c1bTXRKfCvB2LPT516BiJW8K8 prUq3oYXdy0E1cSa
VNHprUeIG0ahejESd0ieS6dy7Idcn2AfZ7FporgHiNsAQyQcfHuS0U/Thyju oBPphoScP2jkhh1e
HgbiHr6PqfpZuN2RG7+hUNwAPZaAOUAu5VQy0jnASgrYYuftWsvOKLA7cksn 0vDStdu4w74rQKki
WTa8B8G9FhUhEjdH7jnaRZzlb336W6z/hQphErLubIl7g9XnUMzH/+DDCMxt mQMv4Jnqt+3DzUNo
ZNs3A8t7jq2uAgL5sRdxkrMl4ZVmxG3TpNPt0kkO4y3zHwfGu7ohPRuSPCev z1seL4qbzPCexyuc
RH6iuAU9JYQQQgghhBBCCCGEEELIp/H/AYDeyHrbFn5QAAAAAElFTkSuQmCC
------=_NextPart_000_000D_01C621E5.09FD2410--
Attached files
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
Problemas al recorres una dbf.
Hola,
>> Tan sólo quta el :Delete().
Quitar el :skip(), pero me parece que no es tan sencillo.
He preparado un pequeño ejemplo utilizando cdx y utilizando ads.
En él se ve cómo con cdx funciona bien, pero falla a la hora de hacerlo en ads, utilzando el mismo código.
Como es un poco largo de explicar, os dejo la explicación en
http://www.aglsl.com/reusedel.pdf
El ejemplo completo, incluido exe y dll está en
http://www.aglsl.com/reusedel.zip (2mb)
Adjunto al mensaje el projecto publicado.
A ver si se te ocurre algún motivo para que funcione de una manera tan rara con los adt.
Yo por más vueltas que le doy no le encuentro ninguna explicación, aunque está claro que activa solo el reusedel, ya que puedo borrar la tabla y llenarla de nuevo 100 veces y su tamaño sigue siendo el mismo
Un saludico,
Fredy
--
Attached files reusedel.zip (24.3 KB)Â
>> Tan sólo quta el :Delete().
Quitar el :skip(), pero me parece que no es tan sencillo.
He preparado un pequeño ejemplo utilizando cdx y utilizando ads.
En él se ve cómo con cdx funciona bien, pero falla a la hora de hacerlo en ads, utilzando el mismo código.
Como es un poco largo de explicar, os dejo la explicación en
http://www.aglsl.com/reusedel.pdf
El ejemplo completo, incluido exe y dll está en
http://www.aglsl.com/reusedel.zip (2mb)
Adjunto al mensaje el projecto publicado.
A ver si se te ocurre algún motivo para que funcione de una manera tan rara con los adt.
Yo por más vueltas que le doy no le encuentro ninguna explicación, aunque está claro que activa solo el reusedel, ya que puedo borrar la tabla y llenarla de nuevo 100 veces y su tamaño sigue siendo el mismo
Un saludico,
Fredy
--
Attached files reusedel.zip (24.3 KB)Â
Problemas al recorres una dbf.
Hola!!
> 1.- Usar DELETE [<ámbito>] [WHILE <lCondición>]
> [FOR <lCondición>]
> 2.- Hacer Scope por el rango de borrado y borrar entonces.
Ya, la historia es que por seguridad prefiero no usar scopes, aunque tarde
un poquico más, así me evito problemas con índices cascaos que de repente
te borran la mitad de las facturas.
Por otro lado, a la vieja usanza funciona bien, es con los dataset con los
que me da problemas y creo que con éstos no puedo usar el while ni el for
Un saludico,
Fredy
PD: ¿40? ¿41?
> 1.- Usar DELETE [<ámbito>] [WHILE <lCondición>]
> [FOR <lCondición>]
> 2.- Hacer Scope por el rango de borrado y borrar entonces.
Ya, la historia es que por seguridad prefiero no usar scopes, aunque tarde
un poquico más, así me evito problemas con índices cascaos que de repente
te borran la mitad de las facturas.
Por otro lado, a la vieja usanza funciona bien, es con los dataset con los
que me da problemas y creo que con éstos no puedo usar el while ni el for
Un saludico,
Fredy
PD: ¿40? ¿41?
- ignacio
- Site Admin
- Mensajes: 9447
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Problemas al recorres una dbf.
Fredy,
Creo que el problema está resuelto. Por lo que sea a ADS no le hace ninguna
gracia que se desbloquee el registro borrado, operación que hace por defecto
el DataSet.
Enhorabuena por el trabajo considerable que llevaba el ejemplo mostrando el
problema. Así da gusto.
Te mando con este Email los módulos arreglados, espero que funcione.
Un saludo,
"Fredy" <fredy@navegandoconxailer.com> escribió en el mensaje
news:[email=a20b86f20a978c7f00a25309888@news.xailer.com...]a20b86f20a978c7f00a25309888@news.xailer.com...[/email]
Hola,
>> Tan sólo quta el :Delete().
Quitar el :skip(), pero me parece que no es tan sencillo.
He preparado un pequeño ejemplo utilizando cdx y utilizando ads.
En él se ve cómo con cdx funciona bien, pero falla a la hora de hacerlo en
ads, utilzando el mismo código.
Como es un poco largo de explicar, os dejo la explicación en
http://www.aglsl.com/reusedel.pdf
El ejemplo completo, incluido exe y dll está en
http://www.aglsl.com/reusedel.zip (2mb)
Adjunto al mensaje el projecto publicado.
A ver si se te ocurre algún motivo para que funcione de una manera tan rara
con los adt.
Yo por más vueltas que le doy no le encuentro ninguna explicación, aunque
está claro que activa solo el reusedel, ya que puedo borrar la tabla y
llenarla de nuevo 100 veces y su tamaño sigue siendo el mismo
Un saludico,
Fredy
Attached files DbfDataSet.rar (16.2 KB)Â
Creo que el problema está resuelto. Por lo que sea a ADS no le hace ninguna
gracia que se desbloquee el registro borrado, operación que hace por defecto
el DataSet.
Enhorabuena por el trabajo considerable que llevaba el ejemplo mostrando el
problema. Así da gusto.
Te mando con este Email los módulos arreglados, espero que funcione.
Un saludo,
"Fredy" <fredy@navegandoconxailer.com> escribió en el mensaje
news:[email=a20b86f20a978c7f00a25309888@news.xailer.com...]a20b86f20a978c7f00a25309888@news.xailer.com...[/email]
Hola,
>> Tan sólo quta el :Delete().
Quitar el :skip(), pero me parece que no es tan sencillo.
He preparado un pequeño ejemplo utilizando cdx y utilizando ads.
En él se ve cómo con cdx funciona bien, pero falla a la hora de hacerlo en
ads, utilzando el mismo código.
Como es un poco largo de explicar, os dejo la explicación en
http://www.aglsl.com/reusedel.pdf
El ejemplo completo, incluido exe y dll está en
http://www.aglsl.com/reusedel.zip (2mb)
Adjunto al mensaje el projecto publicado.
A ver si se te ocurre algún motivo para que funcione de una manera tan rara
con los adt.
Yo por más vueltas que le doy no le encuentro ninguna explicación, aunque
está claro que activa solo el reusedel, ya que puedo borrar la tabla y
llenarla de nuevo 100 veces y su tamaño sigue siendo el mismo
Un saludico,
Fredy
Attached files DbfDataSet.rar (16.2 KB)Â
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
Problemas al recorres una dbf.
Hola,
> Creo que el problema está resuelto. Por lo que sea a ADS no le hace
> ninguna gracia que se desbloquee el registro borrado, operación que
> hace por defecto el DataSet.
Ahora sí va bien.
Lo que sigue sin hacer caso es del reusedel := .f.
El rdd de ads está reutilizando siempre los registros, independientemente
de lo que le pongamos.
En las versiones anteriores funcionaba bien, pero creo que desde la 5 no
hay manera.
¿Sabes algo sobre eso?
¿Alguien que utilice xharbour sin Xailer ha detectado el mismo problema?
> Enhorabuena por el trabajo considerable que llevaba el ejemplo
> mostrando el problema. Así da gusto.
Lo que da gusto es que os plantee un problema a las 10 de la noche, y a las
10 de la mañana ya lo tengáis resuelto.
Un saludico,
Fredu
> Creo que el problema está resuelto. Por lo que sea a ADS no le hace
> ninguna gracia que se desbloquee el registro borrado, operación que
> hace por defecto el DataSet.
Ahora sí va bien.
Lo que sigue sin hacer caso es del reusedel := .f.
El rdd de ads está reutilizando siempre los registros, independientemente
de lo que le pongamos.
En las versiones anteriores funcionaba bien, pero creo que desde la 5 no
hay manera.
¿Sabes algo sobre eso?
¿Alguien que utilice xharbour sin Xailer ha detectado el mismo problema?
> Enhorabuena por el trabajo considerable que llevaba el ejemplo
> mostrando el problema. Así da gusto.
Lo que da gusto es que os plantee un problema a las 10 de la noche, y a las
10 de la mañana ya lo tengáis resuelto.
Un saludico,
Fredu
- ignacio
- Site Admin
- Mensajes: 9447
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Problemas al recorres una dbf.
Fredy,
En la documentación de ADS pone que con ADT él mismo recupera registros
borrados SIEMPRE. Por lo tanto lo que pongas con reusedel no tiene efecto
alguno.
Un saludo,
"Fredy" <fredy@navegandoconxailer.com> escribió en el mensaje
news:[email=a20b86f20aeb8c7f0869aeafa7e@news.xailer.com...]a20b86f20aeb8c7f0869aeafa7e@news.xailer.com...[/email]
> Hola,
>
>> Creo que el problema está resuelto. Por lo que sea a ADS no le hace
>> ninguna gracia que se desbloquee el registro borrado, operación que
>> hace por defecto el DataSet.
>
> Ahora sí va bien.
>
> Lo que sigue sin hacer caso es del reusedel := .f.
> El rdd de ads está reutilizando siempre los registros, independientemente
> de lo que le pongamos.
> En las versiones anteriores funcionaba bien, pero creo que desde la 5 no
> hay manera.
> ¿Sabes algo sobre eso?
> ¿Alguien que utilice xharbour sin Xailer ha detectado el mismo problema?
>
>> Enhorabuena por el trabajo considerable que llevaba el ejemplo
>> mostrando el problema. Así da gusto.
>
> Lo que da gusto es que os plantee un problema a las 10 de la noche, y a
> las 10 de la mañana ya lo tengáis resuelto.
>
>
> Un saludico,
> Fredu
>
>
En la documentación de ADS pone que con ADT él mismo recupera registros
borrados SIEMPRE. Por lo tanto lo que pongas con reusedel no tiene efecto
alguno.
Un saludo,
"Fredy" <fredy@navegandoconxailer.com> escribió en el mensaje
news:[email=a20b86f20aeb8c7f0869aeafa7e@news.xailer.com...]a20b86f20aeb8c7f0869aeafa7e@news.xailer.com...[/email]
> Hola,
>
>> Creo que el problema está resuelto. Por lo que sea a ADS no le hace
>> ninguna gracia que se desbloquee el registro borrado, operación que
>> hace por defecto el DataSet.
>
> Ahora sí va bien.
>
> Lo que sigue sin hacer caso es del reusedel := .f.
> El rdd de ads está reutilizando siempre los registros, independientemente
> de lo que le pongamos.
> En las versiones anteriores funcionaba bien, pero creo que desde la 5 no
> hay manera.
> ¿Sabes algo sobre eso?
> ¿Alguien que utilice xharbour sin Xailer ha detectado el mismo problema?
>
>> Enhorabuena por el trabajo considerable que llevaba el ejemplo
>> mostrando el problema. Así da gusto.
>
> Lo que da gusto es que os plantee un problema a las 10 de la noche, y a
> las 10 de la mañana ya lo tengáis resuelto.
>
>
> Un saludico,
> Fredu
>
>
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