Welcome To The Home Of The Visual FoxPro Experts  
home. signup. forum. archives. search. google. articles. downloads. faq. members. weblogs. file info. rss.
 From: Pete Sass
  Where is Pete Sass?
 Marathon, Ontario
 Canada
 Pete Sass
 To: Cecil Champenois
  Where is Cecil Champenois?
 Little Elm
 Texas - United States
 Cecil Champenois
 Tags
Subject: RE: LOCATE FOR
Thread ID: 416437 Message ID: 416442 # Views: 70 # Ratings: 4
Version: Visual FoxPro 9 SP2 Category: Databases, Tables and SQL Server
Date: Monday, December 29, 2014 7:11:17 PM         
   


> I am beginning to doubt if FoxPro can handle a compound search when using LOCATE FOR. Any insight on this? I am using the following code with indexing and don't see that it's working:
>
> SELECT KMartSearsFiles2012
> SCAN
> 	* Get the string. We will need to parse this string out.
> 	* The file names are separated with":" at the beginning,
> 	* and the end of each file.
> 	lcAttachment=":" + ALLTRIM(KMartSearsFiles2012.FileName) + ":"
> 	lcMessageDate=KMartSearsFiles2012.Msg_Dt
> 	SELECT MySQL_Emails
> 	LOCATE FOR ;
> 		MySQL_Emails.Recvd_Dt = lcMessageDate AND ;
> 		lcAttachment $ MySQL_Emails.Attachment
> 	IF FOUND()
> 		REPLACE MySQL_Emails.lFound WITH .T.
> 	ENDIF
> ENDSCAN
> 

>
> Cecil Champenois, Jr.


Hi Cecil,

Inside the Scan ... EndScan loop you do not use Locate as this moves your record pointer
killing the record by record scanning.

You should be using an If . . . Endif statement inside the Scan loop and if the record
conditions match then flip the flag to .T.
This will process the loop sequentially checking all the records.

The other option maybe a better one is to set a filter on the table :
SET FILTER TO MySQL_Emails.Recvd_Dt = lcMessageDate .AND. lcAttachment $ MySQL_Emails.Attachment
GOTO TOP

* --- You can now browse to see if you have the correct recordset and modify the
* --- filter accordingly until you are happy with the records filtered.
BROWSE 

* --- Now since all your got is your required records.
REPLACE MySQL_Emails.lFound WITH .T. WHILE .NOT. EOF()
SET FILTER TO
GOTO TOP
* --- Star out browse below after verifying all OK.
BROWSE
USE


Pete "the IceMan", from the Great White North of Canada.
www.marathongriffincomputers.com

ENTIRE THREAD

LOCATE FOR Posted by Cecil Champenois @ 12/29/2014 6:34:17 PM
RE: LOCATE FOR Posted by Pete Sass @ 12/29/2014 7:11:17 PM
RE: LOCATE FOR Posted by Cecil Champenois @ 12/29/2014 9:38:00 PM
RE: LOCATE FOR Posted by Greg Green @ 12/29/2014 9:57:36 PM
RE: LOCATE FOR Posted by Pete Sass @ 12/29/2014 11:16:15 PM
RE: LOCATE FOR Posted by Mike Yearwood @ 12/30/2014 3:49:07 PM
RE: LOCATE FOR Posted by Pete Sass @ 12/30/2014 6:18:31 PM
RE: LOCATE FOR Posted by Mike Yearwood @ 12/30/2014 6:55:18 PM
RE: LOCATE FOR Posted by Mike Yearwood @ 12/29/2014 8:30:51 PM
RE: LOCATE FOR Posted by Cecil Champenois @ 12/29/2014 9:35:06 PM
RE: LOCATE FOR Posted by Tony Vignone @ 12/29/2014 9:03:34 PM
RE: LOCATE FOR Posted by Greg Green @ 12/29/2014 10:03:17 PM
RE: LOCATE FOR Posted by Tony Vignone @ 12/30/2014 3:27:40 PM
RE: LOCATE FOR Posted by David Myrick @ 12/29/2014 10:21:05 PM
RE: LOCATE FOR Posted by Jun Tangunan @ 12/30/2014 2:23:08 AM