>>>I have a large quantity of important CNC programs that are kept (right now) in individual ascii files. I am working on a
>>>"process sheet" style program with vfp5 where I am planning to transfer the ascii files into a memo field. I have
>>>heard it mentioned here that memo fields aren't particularly a safe bet for database (dbf) integrity. In other words,
>>>I could end up with a corrupted table. I cannot afford this. What do people here think about memo fields? Safe
>>>or not?
>>
>>Gee, I don't know about them there memo fields...let me ask a question for you to ponder. Do you think that VFP would use them for managing things like forms (SCX/SCT), class libraries (VCX/VCT), projects (PJX/PJT), reports (FRX/FRT), database containers (DBC/DCT) (and the list continues from here) if they were notoriously unstable and subject to mutant behaviors?
>>
>>I'll admit that when they break, it's ugly, but no more so than other file systems that contain variable-length thingies. You want ugly, break an Access .MDB some time!
>
>That's exactly what I'm getting at. I can't think of anything more safe than an ascii file while I have had form and project files become corrupt.
>For no good reason too.
If you're concerned, just save the name of a file. You can use a Zip tool like DynaZip to save compressed ASCII files if you consider a Zip file to be a safer container; you can improve safety with memos by adding checksumming and the like, and add explicit file markers to delimit each memo field to facilitate detecting a grunged pointer. Zip files break, too, and I've seen more than one ASCII file with cross-linked clusters. Realize that all an ASCII file represents is a set of fixed-length blocks (1 block = 1 cluster, or basic unit of file allocation) with an explicit end marker - if the chain of blocks is corrupted, you're sunk, but since each file is a distinct, separate chain, breaking one doesn't necessarily affect others. A memo field is nothing more or less than a file system at heart; each memo field of a DBF is pointer into the memo file, and there is a chain of blocks of basic allocation units for the memo field.
Your call here.