ermatica wrote:Hola Manuel,
No se si ya lo tienes solucionado, de todas formas te comento.
Lo del indice en el caso que te expongo si sería obligatorio, pero usaria scope.
He montado una tabla con un indice (.NTX) con 300.000 registros, filtro entre los registros a borrar y en un ordenador en local los tiempos que me muestra
con un msgalert (Time() ) son de 14:57:35 y final 14:57:49. No se si es mucho. El código que usé es:
Un cordial saludo,Code: Select all
cAlias2:=OpenDbf(mPath_Fich+"FHCARCK1.DBF",5,.T.,.F.,.F.,{mPath_Fich+"FHCARCK1.NTX"},"DBFNTX") If cAlias2="" return nil endif Select (cAlias2) OrdsetFocus(1) dbgotop() ordscope(0,) // quitar scope, filtro o rango ordscope(1,) dbgotop() nReg0 := 1000 nReg1 := 300000 ordscope(0,nReg0) // poner scope, filtro o rango ordscope(1,nReg1) dbgotop() msgalert ( time() ) Do While !Eof() Do While !Rlock() msgalert ("Registro en uso") Return Enddo (cAlias2)->(dbdelete()) skip Enddo msgalert ( time() )
Ernesto
Hola a todos, otra alternativa, es crear un browse, donde el usuario pueda seleccionar todos los registros a eliminar, o seleccionar algunos algunos registros a eliminar, yo tengo uno implementado en la clase de Hernan Cecarelli, pero a nivel de while, y no como yo el que se muestra la imagen, que he querido yo implementar,espero que alguien tenga implementado el browse parecido a la imagen, que subire al foro y lo puedan ver el ejemplo.
http://imageshack.us/g/851/seleccion1.jpg/
http://imageshack.us/photo/my-images/70 ... cion4.png/
Saludos
Atte: Adrian C. C.
acc69@hotmail.com