Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
CURSOR Experiencing Memo Bloat
Message
From
15/07/2006 10:47:36
Hilmar Zonneveld
Independent Consultant
Cochabamba, Bolivia
 
 
To
15/07/2006 10:19:44
General information
Forum:
Visual FoxPro
Category:
Troubleshooting
Miscellaneous
Thread ID:
01136610
Message ID:
01136676
Views:
12
>I cannot replicate with code -- even with THAT table while in a suspended state. That is what I was trying to convey with the latter part of the article. If I replace it manually thousands of times, no bloat -- only when it is done through this program.
>
>I cannot use a memory variable. The table is referenced recursively directly in hundreds of places.

It should be relatively straightforward to systematically search through code, and replace all occurences.

If you do it, perhaps you should take the time to use a "wrapper" function or class. So, instead of:
replace MyMemoField with MyMemoField + "Some Text"
you might use (I am assuming the text is some auditing stuff, but it doesn't really matter if it doesn't):
AddAuditText("Some Text") && User-define function
* or
oAudit.AddText("Some Text") && Object based on user-defined class
That should make it easy to redesign later, for instance, to change from a memo field to a memory variable, or to a text file on disk, to do a memo cleanup after every 100 uses, etc. - all in a single place.

A public object (or one declared in the main program; it might also be a property of the global application object) would be especially appropriate; it could store the data itself (if you decide to use memory variables), have methods for adding and retrieving text, do the cleanup if you decide to use memo variables, and, of course, do all the necessary encapsulation, as outlined above. I.e., hide the implementation details, so that you would no longer have to search through your entire program if you change the way the data is stored.

By the way, how do you handle the cursor with private datasessions? Change the datasession temporarily, or what?
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform