webForumDet fria alternativet

Butikskorg fel

ASP

3 svar · 208 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Vad är fel i följande kod

' Lägg till i korg
IF produktID <> "" THEN
  sqlString = "SELECT korg_id FROM korg " &_
    "WHERE korg_userID=" & userID & " " &_
    "AND korg_produktID=" & produktID & " " &_
    "AND korg_alternativ1=" & alternativ1 & " " &_
    "AND korg_alternativ2=" & alternativ2
  SET RS = Con.Execute( sqlString )
  IF RS.EOF THEN
  sqlString = "INSERT INTO korg ( " &_
    "korg_userID, " &_
    "korg_alternativ1" &_
    "korg_alternativ2" &_
    "korg_produktID, " &_
    "korg_antal " &_
     ") VALUES ( " &_
    userID & ", " &_
    " '" & fixQuotes( alternativ1 ) & "' " &_
    " '" & fixQuotes( alternativ2 ) & "' " &_
    produktID & ", 1 )"
  ELSE
  sqlString = "UPDATE korg SET " &_
    "korg_antal=korg_antal+1 " &_
    "WHERE korg_id=" & RS( "korg_id" ) 
  END IF
  RS.Close
  SET RS = Nothing
  Con.Execute sqlString
END IF

------------------
Adde

Medlem sedan dec. 200012 464 inlägg
#2

Det saknas kommatecken efter alternativ1 och alternativ2 i ditt insert-statement. Både i kolumnlistan och values-delen.

I select-satsen är det inga apostrofer kring sökvärdet för alternativ1 och alternativ2, däremot i insert så är värdena omgivna av apostrofer. Vad har dessa kolumner för datatyp?

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 24 maj 2001]

Medlem sedan jan. 20013 406 inlägg
#3

Datatypen är text på en MS SQL-server

------------------
Adde

Medlem sedan dec. 200012 464 inlägg
#4
' Lägg till i korg
IF produktID <> "" THEN
sqlString = "SELECT korg_id FROM korg " &_
"WHERE korg_userID=" & userID & " " &_
"AND korg_produktID=" & produktID & " " &_
"AND korg_alternativ1='" & alternativ1 & "' " &_
"AND korg_alternativ2='" & alternativ2 & "'"
SET RS = Con.Execute( sqlString )
IF RS.EOF THEN
sqlString = "INSERT INTO korg ( " &_
"korg_userID, " &_
"korg_alternativ1, " &_
"korg_alternativ2, " &_
"korg_produktID, " &_
"korg_antal " &_
") VALUES ( " &_
userID & ", " &_
" '" & fixQuotes( alternativ1 ) & "', " &_
" '" & fixQuotes( alternativ2 ) & "', " &_
produktID & ", 1 )"
ELSE
sqlString = "UPDATE korg SET " &_
"korg_antal=korg_antal+1 " &_
"WHERE korg_id=" & RS( "korg_id" ) 
END IF
RS.Close
SET RS = Nothing
Con.Execute sqlString
END IF

Jag lade till några komman och apostrofer. Det verkar onödigt att använda text, varchar borde räcka då en sådan kolumn kan innehålla upp till 8000 tecken.

------------------
essentitia preter non sans multiplicandum

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)