Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Fastest way to check memo field for a string
Message
 
To
07/07/2009 14:10:55
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Desktop
Miscellaneous
Thread ID:
01410639
Message ID:
01410650
Views:
146
This message has been marked as the solution to the initial question of the thread.
>Assuming a memo field in a cursor is HUGE, and I want to look for a string: 'my string' what would be the fastest and least memory hog way of doing that? I think for sure that $ is not it... is alines() better? It won't be an exact match, in other words, I need to see if 'my string' is in there, but it may be in there as 'this is my string.' etc...
>
>I don't need to know where in the memo field it is, just whether it is there or not.


I did some testing now (I don't know how representative they are):
CLEAR
CREATE CURSOR crsTest (MyMemo M)
APPEND BLANK
REPLACE MyMemo WITH REPLICATE([A],16000000)+[ My String]

m1 = SECONDS()
AT([My String], MyMemo)
? [AT], SECONDS()-m1                  && 0.047

m1 = SECONDS()
RAT([My String], MyMemo)
? [RAT], SECONDS()-m1                 && 0.053

m1 = SECONDS()
aaa = [My String] $ MyMemo
? [$], SECONDS()-m1                   && 0.045

m1 = SECONDS()
aaa = OCCURS([My String], MyMemo)
? [OCCURS], SECONDS()-m1              && 0.284

m1 = SECONDS()
SELECT * FROM crsTest WHERE MyMemo LIKE [%My String%] INTO CURSOR aaaa
? [SELECT +LIKE], SECONDS()-m1        && 0.980
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform