Hi 
 
i do not read your whole info but maybe you need to use case statement
 
e.g your 3 update statements can be changed fro:
 
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;
 
to one:
 Update table set prio = CASE WHEN id = 20 THEN newprio(1) ELSE WHEN prio < 
newprio THEN prio – 1 ELSE WHEN prio > newprio THEN rio + 1 END ;
 
regards,
Karol Bieniaszewski
W dniu 2016-12-02 10:54:57 użytkownik 'Check_Mail' check_m...@satron.de 
[firebird-support] <firebird-support@yahoogroups.com> napisał:
 
.. and can I order all active records completly?
 
(without a loop)
Update table set prio = 1 to n where prio is not null order by prio?
 
Von: firebird-support@yahoog roups.com [mailto:firebird-support@yahoogroups.com]
Gesendet: Freitag, 2. Dezember 2016 10:44
An: 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:< /p>
 
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]
Gesendet: Donnerstag, 1. Dezember 2016 18:47
An: 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
 

 
  • Re: AW: [fireb... liviuslivius liviusliv...@poczta.onet.pl [firebird-support]
    • AW: AW: [... 'Check_Mail' check_m...@satron.de [firebird-support]

Reply via email to