Om det ser ut så här i databasen:
no(tal)
1
2
3
4
5
6
7
Kan jag då genom en sql fråga ta bort tex nummer 3 och sen få 4 att bli 3, 5 att bli 4 osv
8 svar · 290 visningar · startad av Dino
Om det ser ut så här i databasen:
no(tal)
1
2
3
4
5
6
7
Kan jag då genom en sql fråga ta bort tex nummer 3 och sen få 4 att bli 3, 5 att bli 4 osv
Tack. :)
Fortsättning...
Om vi säger att request.form("deleteRow") innehåller 1,4,5,8 så skall koden nedan ta bort rad ett och sen uppdatera raderna efter och sen göra samma med rad 4,5,8. Det funkar om raderna är efter varandra tex 4,5 men när det är mellanrum mellan radtalen tex, 4,7 så tar den bara bort den första raden. Den loopar igenom alla för jag kunde skriva ut alla "bla" med response.write och den när jag skriver ut sqlsatserna så verkar allt oxå stämma.
for each bla in request.form("deleteRow")
SQL10 = "DELETE FROM order_line WHERE line_no = ("& bla &")"
set rs10 = objConn10.Execute(SQL10)
SQL10 = "UPDATE order_line SET line_no = line_no - 1 WHERE line_no > (("& bla &") - 1)"
set rs10 = objConn10.Execute(SQL10)
next
SQL-satserna
18
DELETE FROM order_line WHERE line_no = (18)
UPDATE order_line SET line_no = line_no - 1 WHERE line_no > ((18) - 1)
25
DELETE FROM order_line WHERE line_no = (25)
UPDATE order_line SET line_no = line_no - 1 WHERE line_no > ((25) - 1)
28
DELETE FROM order_line WHERE line_no = (28)
UPDATE order_line SET line_no = line_no - 1 WHERE line_no > ((28) - 1)
Det där är något helt annat ju.
q = "delete from order_line where line_no in (" & request.form("deleteRow") & ")"
objConn10.execute q,,128
rows = split(request.form("deleteRow"),",")
for i = ubound(rows) to 0 step -1
Q = "UPDATE order_line SET line_no = line_no - " & i + 1 & _
" WHERE line_no > "& rows(i)
objConn10.Execute Q,,128
next
Det här förutsätter att värdena i deleteRow är sorterade i stigande ordning.
Borttagningen funkar utmärkt. Tack. Men om jag hade 6 rader 1,2,3,4,5,6 så tar jag bort 1,3,5 men den uppdaterar inte raderna så att det blir rad 1,2,3.
Har du någon lösning på det så skulle det vara perfekt. Men nu skall jag hem så jag får fortsätta på Måndag. Tack för hjälpen i alla fall. :)
q = "delete from order_line where line_no in (" & request.form("deleteRow") & ")"
objConn10.execute q,,128
rows = split(request.form("deleteRow"),",")
for i = ubound(rows) to 0 step -1
Q = "UPDATE order_line SET line_no = line_no - 1 " & _
" WHERE line_no > "& rows(i)
objConn10.Execute Q,,128
next
Tack, skall testa den det första jag gör på Måndag. :)
Funkade galant.