|
| Reverse do while loop? Fra : Jacob Nielsen |
Dato : 10-11-02 01:00 |
|
Hej
Ja, det lyder dumt, men jeg skal ha' kørt en Do While loop igennem bagfra.
Problemet er som følger:
Jeg har en database hvor min menu ligger. Nu er jeg så ved at lave en sql
sætning der sætter et nyt menupunkt ind. Hvert menupunkt har et nummer, og
menuen bliver udskrevet i numerisk rækkefølge. Hvis man så sætter et nyt
menupunkt ind imellem to eksisterende skal resten af punkternes numre
adderes med 1. Så langt så godt. Problemet er bare at det kan jeg ikke
rigtigt få til at virke. Her er et eksempel på SQL-sætningerne når de er
skrevet ud:
strSQL: SELECT * FROM menu_skjoni WHERE menu_parent_id = 2 LIMIT 4,-1
strSQLUpdate: UPDATE menu_skjoni SET pid = 206 WHERE pid = 205
strSQLUpdate: UPDATE menu_skjoni SET pid = 207 WHERE pid = 206
strSQLUpdate bliver udskrevet i en Do While løkke, men hvis ovenstående
bliver executet vil jeg ende op med to rækker hvor pid nummeret er 207.
Her er koden:
strSQL = "SELECT * FROM menu_skjoni WHERE menu_parent_id = " &
Left(intPid,1) & " LIMIT " & intLimit & ",-1"
Set rs = Conn.Execute(strSQL)
Response.Write "<strong>strSQL:</strong> " & strSQL & "<br>" & vbCrlf
Do
strSQLUpdate = "UPDATE menu_skjoni SET pid = " & rs("pid")+1 & " WHERE pid =
" & rs("pid")
Response.Write "<strong>strSQLUpdate:</strong> " & strSQLUpdate & "<br>" &
vbCrlf
Set rs2 = Conn.Execute(strSQLUpdate)
rs.MoveNext
Loop while not rs.EOF
Håber det giver mening.
Mvh. Jacob
| |
WebLock (10-11-2002)
| Kommentar Fra : WebLock |
Dato : 10-11-02 11:28 |
|
> strSQLUpdate: UPDATE menu_skjoni SET pid = 206 WHERE pid = 205
> strSQLUpdate: UPDATE menu_skjoni SET pid = 207 WHERE pid = 206
Kan den ikke laves således, så du kun skal opdatere én gang ?
strSQLUpdate: UPDATE menu_skjoni SET pid = pid+1 WHERE pid => 205
Webber
| |
Jacob Nielsen (10-11-2002)
| Kommentar Fra : Jacob Nielsen |
Dato : 10-11-02 23:20 |
|
"WebLock" <skummelREMO@VEgadefejer.dk> wrote in message
news:3dce3489$0$16077$edfadb0f@dread11.news.tele.dk...
> > strSQLUpdate: UPDATE menu_skjoni SET pid = 206 WHERE pid = 205
> > strSQLUpdate: UPDATE menu_skjoni SET pid = 207 WHERE pid = 206
>
> Kan den ikke laves således, så du kun skal opdatere én gang ?
> strSQLUpdate: UPDATE menu_skjoni SET pid = pid+1 WHERE pid => 205
Hej
Nej, det duer desværre ikke :(
Men tak for forslaget.
Mvh. Jacob
| |
Jakob Andersen (11-11-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 11-11-02 15:57 |
|
"Jacob Nielsen" <jacob.nielsenREMOVE@REMOVEget2net.dk> wrote
> Nej, det duer desværre ikke :(
Hvorfor ikke, det var da ellers en ret god løsning.
--
Jakob Andersen
| |
Jacob Nielsen (14-11-2002)
| Kommentar Fra : Jacob Nielsen |
Dato : 14-11-02 19:05 |
|
"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:aqogd5$1tbp$1@news.cybercity.dk...
> "Jacob Nielsen" <jacob.nielsenREMOVE@REMOVEget2net.dk> wrote
> > Nej, det duer desværre ikke :(
>
> Hvorfor ikke, det var da ellers en ret god løsning.
Jeg var vist lidt for hurtig :) Den virker fint (efter lidt tilretning).
Så mange tak :)
| |
|
|