>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")
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