webForumDet fria alternativet

Köra funktioner och UPDATE

ASP

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 →
Medlem sedan juli 2009355 inlägg
#41

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 ^^

Medlem sedan juli 2009355 inlägg
#42

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)

Medlem sedan juni 20019 519 inlägg
#43

Kolla du om Recset är EOF?

Medlem sedan juli 2009355 inlägg
#44

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?

Medlem sedan juni 20019 519 inlägg
#45

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.

Medlem sedan juli 2009355 inlägg
#46

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!

Medlem sedan juni 20019 519 inlägg
#47

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.

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)