Welcome To The Home Of The Visual FoxPro Experts  
home. signup. forum. archives. search. google. articles. downloads. faq. members. weblogs. file info. rss.
 From: Chuanbing Chen
  Where is Chuanbing Chen?
 Shenzhen
 China
 Chuanbing Chen
 To: Mike Yearwood
  Where is Mike Yearwood?
 Toronto
 Canada
 Mike Yearwood
 Tags
Subject: RE: C++ compiler
Thread ID: 415740 Message ID: 416174 # Views: 40 # Ratings: 1
Version: Visual FoxPro 9 SP2 Category: 3rd Party Software
Date: Tuesday, December 23, 2014 1:03:49 AM         
   


Hi Mike,

You are right.

This is my pgotop():

FUNCTION pgotop_gotop

IF !RECCOUNT()>0
RETU
ENDI

LOCATE
RETU

and pgobott():

FUNCTION pgobott_gobott

IF !RECCOUNT()>0
RETU
ENDI

IF SET("ORDER")==""
DO pgo WITH RECCOUNT()
SKIP +1
SKIP -1
RETU
ELSE
IF !UPPE(ALLTRIM(RIGHT(SET("ORDER"),LEN("DESCENDING"))))==UPPE(ALLTRIM("DESCENDING"))
SET ORDER TO (ORDER()) DESCENDING
LOCATE
SET ORDER TO (ORDER()) ASCENDING
RETU
ELSE
SET ORDER TO (ORDER()) ASCENDING
LOCATE
SET ORDER TO (ORDER()) DESCENDING
RETU
ENDI
ENDI

They are faster than GO TOP and GO BOTT.

Best regards.

Chen
2014.12.23

> Gentlemen, you're forgetting a very significant part of the experiment. You must set a filter and/or you must have a large number of deleted records at the physical top and/or bottom of the table with set deleted on.
>
> In that situation - which many people have making it a real-world test - you will see that GO TOP/BOTTOM is un-optimized and therefore takes a very long time versus LOCATE. I'm not sure where LOCATE = .F. came from. That is a typo. It must be LOCATE FOR .F.
>
> The experiment was presented in my first FoxPro Advisor article back in 1995.
>
> Mike Yearwood
> Microsoft MVP Visual FoxPro 2008, 2009
> We have enough youth. We need a fountain of smart!
> There may be many ways to skin a cat, but there are very few right ways to do it.

Welcome to VFP C++ Compiler: http://www.baiyujia.com/vfpcompiler

ENTIRE THREAD

C++ compiler Posted by Mike Yearwood @ 12/11/2014 9:47:42 PM
RE: C++ compiler Posted by Tony Vignone @ 12/11/2014 10:18:16 PM
RE: C++ compiler Posted by michael johnson @ 12/12/2014 3:15:14 AM
RE: C++ compiler Posted by Mike Yearwood @ 12/12/2014 4:40:18 PM
RE: C++ compiler Posted by Chuanbing Chen @ 12/12/2014 8:01:24 AM
RE: C++ compiler Posted by Pete Sass @ 12/12/2014 12:41:53 PM
RE: C++ compiler Posted by Pete Sass @ 12/13/2014 5:29:47 PM
RE: C++ compiler Posted by Tony Vignone @ 12/13/2014 8:27:53 PM
RE: C++ compiler Posted by Chuanbing Chen @ 12/14/2014 3:44:09 AM
RE: C++ compiler Posted by Mike Yearwood @ 12/15/2014 4:02:35 PM
RE: C++ compiler Posted by Tony Vignone @ 12/16/2014 2:10:42 PM
RE: C++ compiler Posted by Mike Yearwood @ 12/16/2014 6:00:18 PM
RE: C++ compiler Posted by Tony Vignone @ 12/16/2014 7:37:14 PM
RE: C++ compiler Posted by Pete Sass @ 12/17/2014 3:27:15 AM
RE: C++ compiler Posted by Mike Yearwood @ 12/17/2014 3:50:23 PM
RE: C++ compiler Posted by Pete Sass @ 12/17/2014 6:09:24 PM
RE: C++ compiler Posted by Mike Yearwood @ 12/18/2014 3:22:37 PM
RE: C++ compiler Posted by Pete Sass @ 12/18/2014 4:55:58 PM
RE: C++ compiler Posted by Mike Yearwood @ 12/18/2014 7:16:44 PM
RE: C++ compiler Posted by Pete Sass @ 12/18/2014 7:53:51 PM
RE: C++ compiler Posted by Chuanbing Chen @ 12/19/2014 12:48:30 AM
RE: C++ compiler Posted by Pete Sass @ 12/19/2014 11:57:43 PM
RE: C++ compiler Posted by Mike Gagnon @ 12/20/2014 2:09:13 AM
RE: C++ compiler Posted by Pete Sass @ 12/20/2014 3:18:09 PM
RE: C++ compiler Posted by Vilhelm-Ion Praisach @ 12/20/2014 6:53:41 PM
RE: C++ compiler Posted by Pete Sass @ 12/20/2014 8:25:14 PM
RE: C++ compiler Posted by Vilhelm-Ion Praisach @ 12/20/2014 9:18:10 PM
RE: C++ compiler Posted by Mike Yearwood @ 12/22/2014 3:01:11 PM
RE: C++ compiler Posted by Pete Sass @ 12/22/2014 3:57:28 PM
RE: C++ compiler Posted by Vilhelm-Ion Praisach @ 12/22/2014 5:54:52 PM
RE: C++ compiler Posted by Mike Yearwood @ 12/22/2014 9:38:06 PM
RE: C++ compiler Posted by Chuanbing Chen @ 12/23/2014 1:03:49 AM
RE: C++ compiler Posted by Mike Yearwood @ 12/22/2014 3:42:43 PM