Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to re-sequence all the records in a table
Message
From
07/10/1997 09:14:41
 
 
To
07/10/1997 06:25:08
Shihchau Tai
Apic Systems Pte Ltd
Singapore, Singapore
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00053490
Message ID:
00053508
Views:
23
>I am trying to implement a simple 'multiple select mover grid' and I find the re-sequencing of the record slow. I am sure there is a way to re-order the records in a shorter time. Can somebody help?
>
>I keep a sequence number in the table to order the table. First, the user selects a few records by clicking on the checkbox (flag). Then the user selects the new position for the selected records. When the 'Move' button is click, I tried to sequence it using the following codes
>
>nrecno = recno()
>nseq = sequence
>replace all sequence with sequence*1000
>replace all sequence with sequence/1000+nseq*1000 for flag=.T.
>i=0
>scan
> i=i+1
> replace sequence with i
>endscan
>
>The scan is slow. Is it possible to do it in one replace statement?
>
>Can anyone suggest other ways of re-sequencing of records?

Your algorithm is slow because you scan/replace all records in table. I would advise to change sequence value just for records you want to move:
Select table1 && this is Grid.Recordsource
Set order to tag sequence
Calculate min(sequence) to nMinsequence
nCounter=0
Scan For flag=.t. && have tag on flag for better performance
nCounter=nCounter+1
Replace table1.Sequence with nMinsequence-nCounter
Endscan
Thisform.Grid1.Refresh
Edward Pikman
Independent Consultant
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform