Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Copy To FOX2X WinME vs W2K
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Divers
Thread ID:
00782252
Message ID:
00782503
Vues:
13
>You need to be careful here. On the W2K system, your new memo data might be getting written to a part of the disk which has never been written to before - so it only LOOKS like it's overwriting the block portions after your data.
>
>I'd argue that the system is working exactly as expected. VFP is writing out your data to the right places; it is ignoring the unused portion of each block so that portion contains whatever was in it before it was recycled by the file system for use as part of the memo file. But VFP doesn't care about it. I'd be surprised if dBASE V cared about it either, since SET BLOCKSIZE has been around (if memory serves) since dBASE III+ at least.
>
>So, I don't think you can call this "corruption".
>
>BTW have you tried with BLOCSIZE set to 0? dBASE V might support that.

I think you are unto something here. I have tested on one machine the following:
Set BlockSize To 512
SET SAFETY OFF
CREATE CURSOR cuVI ;
   ( MAIL_NO   N(5,0)   NOT NULL ;
   , DATE      D        NOT NULL ;
   , WHO       C(6)     NOT NULL ;
   , RESULT    M        NOT NULL ;
   , NEW       L        NOT NULL )
cLocal = "C:\ViTest"
COPY TO (cLocal + ".DBF") FOX2X
cStr = filetostr(cLocal + ".FPT")
=strtofile(left(cStr,8) + replicate(chr(0),512*3),cLocal + ".FPT")
* Open file to see results

nLoops = 3
DIMENSION ar[nLoops]

ar[1] = "Test record 1"
ar[2] = "Specifies the directory that is initially displayed in the dialog box. " + ;
        "When cDirectory is not specified, the dialog box opens with the " + ;
        "Visual FoxPro default directory displayed"
ar[3] = "Small set again. Not sure which will have erroneous data."
FOR nL = 1 to nLoops

   INSERT INTO cuVI VALUES ;
      ( nL     ;
      , date() ;
      , "Test" ;
      , ar[nL] ;
      , .F.    )

ENDFOR

use (cLocal) in 0 shared ALIAS ViTest
select ViTest
append from dbf("cuVI")
Use In Select("ViTest")
modify file \viTest.fpt

use in select("cuVI")
This has showed correctly on a WinME, and a Win98.

As for trying it with SET BLOCKSIZE 0, I still saw remains of previous data. My problem is the SatForms HotSync ActiveX converts this file to a PDB, and converts this extra data, and sync's it to the Palm Device.

Have I overlooked something, and there is a way to get the format I want without ODBC?
Tracy
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform