Hej igen! Jag använder mig utav Anna-Karins webbshop. Den är nästan färdigutvecklad. Men jag har ett litet problem som stör mig, suttit och hållit på med det här problemet ett väldigt bra tag nu. <% I ditt första inlägg ser det ut som det genererade SQLStmt blir felaktigt: Oki, tack för tipset, ska lägga in så det kollar så AnvId har ett värde..Problem.
Det är såhär att när man valt produkt och har betalat och kommer tillbaks till huvudsidan så får man fel i ens kundvagn.
"Microsoft JET Database Engine error '80040e14'
Extra ) in query expression 'Korg.Artnr = Prod.Artnr AND (Korg.AnvId = )'.
/default.asp, line 229"
Om man sedan stänger ner sidan och går in på den igen så funkar allt normalt. Då tänkte jag att det måste vara sessionerna och kakorna det är fel på. Så då gjorde jag så att jag tog bort sessionenerna och kakorna efter att man beställt och skapar nya igen innan man når huvudsidan. Men samma fel. Någon som har något tips om hur man kan undgå det här problemet?
Tack på förhand! Sv:Problem.
' ==========================================================================
' Sätter AnvID till det sessionID som vi sparade tidigare
' ==========================================================================
AnvID = Session("KundID")
' ==========================================================================
' Öppna databasen och hämta alla produkter som är lagda i korgen.
' ==========================================================================
Set Connection = Server.CreateObject("ADODB.Connection")
SET Connection = ShopIT_GetDatabaseConn()
' ==========================================================================
' Radera produkter i korgen om användaren valt att göra så.
' ==========================================================================
If Request("Id") <> "" Then
SQLStmt = "DELETE FROM Korg Where KorgId =" & Request("Id")
Connection.Execute(SQLStmt)
End If
SQLStmt = "SELECT Korg.Antal, Korg.KorgId, Korg.Artnr, Prod.Produkt, Prod.Beskrivning, Prod.Pris, Korg.AnvID FROM Korg, Prod WHERE Korg.Artnr = Prod.Artnr AND (Korg.AnvId = " & AnvId & ") Order by Kategori"
SET RS = Connection.Execute(SQLStmt)
Function GetPrice()
TotalPris = RS("Antal") * RS("Pris")
GetPrice = FormatNumber(TotalPris,2)
End Function
%>
på default sidan inkluderas även: nocookie.asp --->
<%
' ==========================================================================
' Planterar en liten cookie för att se om besökarens webbläsare tar emot den.
' ==========================================================================
Response.cookies("Validate") = 1
Session("KundID") = Session.SessionID
Response.Redirect "Default.asp"
%>Sv: Problem.
<code>Extra ) in query expression 'Korg.Artnr = Prod.Artnr AND (Korg.AnvId = )'</code>
att jämföra med föjande från din kod:
<code>Korg.Artnr = Prod.Artnr AND (Korg.AnvId = " & AnvId & ")</code>
Det ser ut som om
<code>
AnvID = Session("KundID")
</code>
inte alltid blir satt vilket skulle kunna bero på att du kör på en IIS6 med flera worker processes i din application pool webgarden. Ett steg i felhanteringen skulle kunna vara att alltid kolla så att du har ett värde i AnvID innan du kör sql-frågan.Sv:Problem.
Edit:
Det funkade bra nu, men varan ligger fortfarande kvar i korgen, lite störande. Den ska ju försvinna:/
Edit:
Nu funkar det! Äntligen har man tagit sig förbi ännu ett problem. Känns mkt bra!;D Tack för hjälpen!;D