Page 1 of 1

Pack and memo field

PostPosted: Wed Nov 15, 2006 5:10 pm
by pawelu
Antonio,

It's look like Harbour for Pocket PC don't remove data from FPT memo file when PACK command is use. Below is sample code.

Regards
Pawel

Code: Select all  Expand view
#Include 'FwCe.Ch'

Function TestTr ()

  Local aStr := {}
  Local i := 0
  Local j := 0
  Local k := 0

  AppIni ()

  AAdd (aStr, {'F1', 'N',  5, 0})
  AAdd (aStr, {'F2', 'M', 10, 0})
  DbCreate (CurDir () + '\TESTTR', aStr)
  Use (CurDir () + '\TESTTR') New CodePage 'PLWIN'

  For i := 1 To 200
      TestTr->(DbAppend ())
      TestTr->F1 := i
      TestTr->F2 := PadL (i, 10, '0')
  Next

  TestTr->(DbGoTop ())
  Do While !TestTr->(Eof ())
     TestTr->(DbDelete ())

     TestTr->(DbSkip ())
  Enddo

  Select TestTr
  Copy To (CurDir () + '\TESTTRC') All // <-- this works ok

  Select TestTr
  Pack // <--- this don't remove data from memo file for deleted records
  TestTr->(DbCloseArea ())

  i := FOpen (CurDir () + '\TESTTR.FPT')
  j := FSeek (i, 0, 2)
  FClose (i)

  i := FOpen (CurDir () + '\TESTTRC.FPT')
  k := FSeek (i, 0, 2)
  FClose (i)

  MsgInfo (Str (j) + IIf (j == k, ' == ', ' != ') + Str (k))

Return .T.

Function AppIni ()

   Request DbfCdx
   Request DbfFpt
   RddSetDefault ('DbfCdx')
   Request Hb_Lang_PL852
   Request Hb_Lang_PLWIN
   Request Hb_CodePage_PL852
   Request Hb_CodePage_PLWIN

   Set Century On
   Set Epoch To 2000
   Set Date German
   Set Deleted On
   Hb_LangSelect ('PL')
   Hb_SetCodePage ('PLWIN')

Return .T.

PostPosted: Wed Nov 15, 2006 5:46 pm
by Antonio Linares
Pawel,

Have you tested the same code with Harbour on a PC ?

PostPosted: Wed Nov 15, 2006 6:04 pm
by pawelu
Antonio,

In Harbour for PC PACK works exactly as in Pocket PC - wrong.

Pawel

PostPosted: Wed Nov 15, 2006 6:34 pm
by Antonio Linares
Pawel,

Then it looks as a Harbour issue.

Could you please report it at the Harbour development list providing your sample ? thanks,