jag har försökt att tilldela RecSet("position") både en integer och en sträng, men det går ej... jag funderar på att byta namn på kolumnen i tabellen så man slipper en massa extra krångel ^^
Köra funktioner och UPDATE
46 svar · 1 300 visningar · startad av Sanji · sida 3 av 3
Frågan, av Sanji
Hej! Jag fick idag en uppgift att göra om en sida för att hantera en meny i klassisk asp, så att man kan flytta på menyalternativen upp och ner i listan. Jag började med att lägga till en ny kolumn i databasen som jag namngav till position, där en siffra representerar menyalternativens ordning i listan. Nu återstår koden för att få detta att fungera som jag vill... Så här ser den ut hittills:
Läs frågan i sin helhet →nu har jag ändrat namn på tabellen till "pos_cat". Jag får fel när jag försöker med:
RecSet("pos_cat") = (CInt(pos)+1)
Kolla du om Recset är EOF?
det funkar nu :) fast inte helt optimalt, nu måste jag fixa det där du pratade om, att kolla om det finns fler kategorier när funktionen ska köras, så det inte blir fel... btw här är funktionen nu:
sub menuitemup(pos)
movingItemID = "SELECT KategoriID, pos_cat FROM kategorier WHERE pos_cat =" & CInt(pos) & ""
adaptingItemID = "SELECT KategoriID, pos_cat FROM kategorier WHERE pos_cat =" & (CInt(pos)-1) & ""
RecSet.Open movingItemID, Connect
RecSet2.Open adaptingItemID, Connect
movingpos = (RecSet("pos_cat")-1)
adaptingpos = RecSet("pos_cat")
movingid = RecSet("KategoriID")
adaptingid = RecSet2("KategoriID")
RecSet.Close
RecSet2.Close
Connect.execute "UPDATE Kategorier SET pos_cat=" & movingpos & " WHERE KategoriID=" & movingid & ""
Connect.execute "UPDATE Kategorier SET pos_cat=" & adaptingpos & " WHERE KategoriID=" & adaptingid & ""
end sub
ska man slänga in "IF RecSet.EOF" runt allt i funktionen eller?
btw, felet jag gjorde var att försöka uppdatera RecSet med nya värden i en befintlig post, det går tydligen inte vad jag förstått efter lite läsning på google... eller?
ska man slänga in "IF RecSet.EOF" runt allt i funktionen eller?
Nej, kolla om Recset2 finns innan du kör recset, om inte 2:an finns så skall du inte göra flytten och då behöver du inte gör all logik du skriver i din metod ovan.
gjorde så här:
sub menuitemup(pos)
movingItemID = "SELECT KategoriID, pos_cat FROM kategorier WHERE pos_cat =" & CInt(pos) & ""
adaptingItemID = "SELECT KategoriID, pos_cat FROM kategorier WHERE pos_cat =" & (CInt(pos)-1) & ""
RecSet.Open movingItemID, Connect
RecSet2.Open adaptingItemID, Connect
IF RecSet2.BOF THEN
ELSE
movingpos = (RecSet("pos_cat")-1)
adaptingpos = RecSet("pos_cat")
movingid = RecSet("KategoriID")
adaptingid = RecSet2("KategoriID")
Connect.execute "UPDATE Kategorier SET pos_cat=" & movingpos & " WHERE KategoriID=" & movingid & ""
Connect.execute "UPDATE Kategorier SET pos_cat=" & adaptingpos & " WHERE KategoriID=" & adaptingid & ""
END IF
RecSet.Close
RecSet2.Close
end sub
Det funkar finfint nu ^^ Tack för hjälpen voigtann1!
Ett tips är att köra
If Not RecSet2.EOF Then
...
End If
mindre kod och enklare att läsa på vad den gör.
