[comp.databases] Clipper and lost memo records ... HELP!

zlcbeowen@qut.edu.au (08/03/90)

We have a clipper application for journal control within the library.  It
was installed some months ago and we are still in the data entry phase.
After some months of operation, a .DBT file has grown to 16M, and now
we are having problems ...
 
Now when calling up the memo field of any record in the file using MEMOEDIT(),
the memo field is deleted on returning (by printing, modifying, or just
escaping back without change).  The offending line of code is:
 
    REPLACE biblio WITH MEMOEDIT(biblio,tr+1,tc+2,br-1,bc-2,.t.,"memo_func",;
        "","",init_row,init_col,init_rel_row,init_rel_col)

Re-indexing didn't help, but after repacking the .DBT file, the file shrank
to 10M and the problem disappeared.  The Clipper version is Summer '87.
 
Both the developer and our Clipper programmer are at a loss to explain why
this is occurring.  I suspect that MEMOEDIT() may be returning a blank 
record, but I don't really know anything about Clipper.

Has anyone else experienced this problem, or have any idea of where to look
for a solution?

Chris Owen                           | c_owen@qut.edu.au
Computer Based Education             | voice +61 7 223 2582
Queensland University of Technology  | FAX   +61 7 229 0874
Brisbane, Australia

jgb@prism.gatech.EDU (James G. Baker) (08/07/90)

In article <13220.26b95be0@qut.edu.au> zlcbeowen@qut.edu.au writes:
>After some months of operation, a .DBT file has grown to 16M, and now
>we are having problems ...
> 
>Now when calling up the memo field of any record in the file using MEMOEDIT(),
>the memo field is deleted on returning... [by this line of code:]          
> 
>    REPLACE biblio WITH MEMOEDIT(biblio,tr+1,tc+2,br-1,bc-2,.t.,"memo_func",;
>        "","",init_row,init_col,init_rel_row,init_rel_col)

I have had similar problems with memo fields.  Although "packing" should help,
a true "COPY TO" seems to be the most help.  Also, is your "memo_func" doing
anything tricky like opening other files or messing with SET KEY's?  If you
have the memory, load the record to a memory variable and see what step 
zaps the string.

     Mbiblio = BIBLIO
     altd()                                   && Call up debugger of choice
     Mbiblio = MemoEdit( Mbiblio, .... )
     altd()           
     REPLACE BIBLIO WITH Mbiblio
     altd()

See if it sheds any light on the problem...


-- 
BAKER,JAMES G - Lab Technician, School of Electrical Engineering
Georgia Institute of Technology, Atlanta Georgia, 30332
uucp:	  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!jgb 
Internet: jgb@prism.gatech.edu

zlcbeowen@qut.edu.au (08/08/90)

Thanks to Joan Hughes who pointed out that this is a bug in Clipper with
memo files of 16M and over.  We are now waiting on a beta version of 
CLIPPER.LIB from Nantucket which will allow us to use up to 32M memo files.
Nantucket say that the data isn't actually lost, it's still in the file,
it just isn't retrievable using our version of the library.

Chris Owen                           | c_owen@qut.edu.au
Computer Based Education             | voice +61 7 223 2582
Queensland University of Technology  | FAX   +61 7 229 0874
Brisbane, Australia