.. and can I order all active records completly?

(without a loop)

<SL> Don't manage the records during your direct update, manage the order 
records via a AFTER UPDATE trigger...

<SL> Using a "separator" in the priority range is good, you can use it to 
manage the scope of the changes required.  You would not need to update every 
row, just enough rows to establish the new sequence.

Update table set prio = 1 to n where prio is not null order by prio?

Von: firebird-support@yahoogroups.com<mailto:firebird-support@yahoogroups.com> 
[mailto:firebird-support@yahoogroups.com]
Gesendet: Freitag, 2. Dezember 2016 10:44
An: firebird-support@yahoogroups.com<mailto:firebird-support@yahoogroups.com>
Betreff: AW: [firebird-support] Sequence


Okay,

I would simply change the prio new in steps of 10.

Also I can do the following:

Priority in steps of 1

ID 10 Prio 1
ID 20 Prio 2
ID 23 Prio 3
ID 11 Prio 4

Now the user can Set the ID 23 to Prio 2, how can I realize this without a loop?

Update table set prio = newprio(1) where id = 20;
Update table set prio = prio - 1 where prio < newprio;
Update table set prio = prio + 1 where prio > newprio;

..more simplier?



Von: firebird-support@yahoogroups.com<mailto:firebird-support@yahoogroups.com> 
[mailto:firebird-support@yahoogroups.com]
Gesendet: Donnerstag, 1. Dezember 2016 18:47
An: firebird-support@yahoogroups.com<mailto:firebird-support@yahoogroups.com>
Betreff: RE: [firebird-support] Sequence



Olag,

> Before
> Record 1 prio 3
> Record 2 prio 10
> Record 3 prio 18
> Record 4 prio 20
> Record 5 prio 30
>
> The user set the record 4 to prio 15, I would like to do this:
>
> Record 1 from 3 to 10
> Record 2 from 10 to 20
> Record 3 from 20 (should 15, Destination between record 2 and record 3)) to
> 30
> Record 4 to 40
> Record 5 to 50

You example is confusing.

If a user can never change the position of Record 4 ahead of Record 3 (as is 
the case in your example) what purpose does priority serve.

If you had said that the outcome you wanted was:

Record 1 from 3 to 10
Record 2 from 10 to 20
Record 4 to 30 <-*********
Record 3 from 20 (should 15, Destination between record 2 and record 3)) to 40 
<-*********
Record 5 to 50

Then that would have made sense.

Please clarify, the problem domain does matter to the solution.

Sean





  • [firebird-supp... 'Check_Mail' check_m...@satron.de [firebird-support]
    • RE: [fire... 'Leyne, Sean' s...@broadviewsoftware.com [firebird-support]
      • AW: [... 'Check_Mail' check_m...@satron.de [firebird-support]
        • A... 'Check_Mail' check_m...@satron.de [firebird-support]
          • ... 'Leyne, Sean' s...@broadviewsoftware.com [firebird-support]
        • R... setysvar setys...@gmail.com [firebird-support]

Reply via email to