como pegar os ultimos 1000 registros de um arquivo com append?
Sele XNOT
append from NOTA.DBF for RECNO() > LASTREC()-1000
pelo DBU32 faz rapido!!!
mas pelo .EXE demora muito !!

Moderador: Moderadores
Sele XNOT
append from NOTA.DBF for RECNO() > LASTREC()-1000
juniorcamilo escreveu:pelo DBU32 faz rapido!!! mas pelo .EXE demora muito !!
for nCont = 1000 to 1 step -1
append record nCont from &CLDADOS.ARQNOT&mArq..DBF
@ 23,00 say padc("Registro:"+alltrim(str(nCont)),80)
next
for nCont = 1000 to 1 step -1
append record nCont from &CLDADOS.ARQNOT&mArq..DBF for {||HRB_DOEVENTS(), .T. }
@ MaxRow(),00 say padc("Registro:" + alltrim(str(nCont)), 80)
next
#pragma BEGINDUMP
#include "windows.h"
#include "hbapi.h"
#include "olectl.h"
#include "time.h"
HB_FUNC( HRB_DOEVENTS )
{
MSG Msg;
while( PeekMessage( ( LPMSG ) &Msg, 0, 0, 0, PM_REMOVE ) )
{
TranslateMessage( &Msg );
DispatchMessage( &Msg );
}
}
#pragma ENDDUMP
juniorcamilo escreveu:fiz um arranjo técnico!! melhorou muito !!!
SELECT origem
IF RecNo() ) < 1000
GOTOTOP
ELSE
GOTO ( LastRec() - 1000 )
ENDIF
DO WHILE ! Eof()
Destino->( RecAppend() )
FOR nCont = 1 TO FCount()
Destino->( FieldPut( nCont, origem->( FieldGet( nCont ) ) ) )
NEXT
SKIP
ENDDO
...
FUNCTION RecAppend()
// sua rotina de incluir
RETURN NIL
asimoes escreveu:for nCont = 1000 to 1 step -1
append record nCont from &CLDADOS.ARQNOT&mArq..DBF for {||HRB_DOEVENTS(), .T. }
@ MaxRow(),00 say padc("Registro:" + alltrim(str(nCont)), 80)
next
#pragma BEGINDUMP
#include "windows.h"
#include "hbapi.h"
#include "olectl.h"
#include "time.h"
HB_FUNC( HRB_DOEVENTS )
{
MSG Msg;
while( PeekMessage( ( LPMSG ) &Msg, 0, 0, 0, PM_REMOVE ) )
{
TranslateMessage( &Msg );
DispatchMessage( &Msg );
}
}
#pragma ENDDUMP
Usuários vendo este fórum: Nenhum usuário registrado online e 9 visitantes