Avatar billede magic Nybegynder
15. september 1999 - 13:41 Der er 8 kommentarer og
1 løsning

Problem med shoppingcart system

Jeg har fundet et shoppingcart system, som jeg gerne ville have til at fungere, men hver gang jeg prøver at lægge noget i indkøbsvognen, får jeg denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

/AddToCart.asp, line 93

Her er sourcekoden:

<%@ LANGUAGE="VBSCRIPT" %>
<!-- #INCLUDE FILE="odbc_connection.inc" -->
<%
'on error resume next
'====================
'Add to Shopping Cart
'====================
intSessionID=Session.SessionID
HowManyAdded=0
session("EmptyCart")=0
session("PurchaseStage")=2

'test=0
'for each item in Request.Form
'    test=test+1
'next
'if test=0 then Response.Redirect "inventory.asp"
if Request.Form.Count=0 then
    'they didn't select anything
    Response.Redirect "inventory.asp"
end if

for each item in request.form
    intQuantity=request.form(item)
    if intQuantity>0 then
        s_Item_No=item
        'find category id from s_Item_No
        sSQL="SELECT"
        sSQL=sSQL & " tbl_Categories.ID"
        sSQL=sSQL & " FROM tbl_Categories"
        sSQL=sSQL & " INNER JOIN tbl_Inventory ON tbl_Categories.s_Category = tbl_Inventory.s_Category"
        sSQL=sSQL & " WHERE (tbl_Inventory.s_Item_No='" & s_Item_No & "')"
        Set RS = Server.CreateObject("ADODB.Recordset")
        RS.Open sSQL, conn, 3, 3 'read
        CategoryID=RS("ID")
        RS.close
        set RS=nothing
       
        if CategoryID=1 then
            'SYSTEM
            sSQL="SELECT"
            sSQL=sSQL & " tbl_Inventory_System_Components_Session.intSessionID"
            sSQL=sSQL & ",tbl_Inventory_System_Components_Session.s_System_Item_No"
            sSQL=sSQL & ",Sum(tbl_Inventory.price) AS SumOfcurSalesPrice"
            sSQL=sSQL & ",Sum(tbl_Inventory.cost) AS SumOfCost"
            sSQL=sSQL & " FROM tbl_Inventory_System_Components_Session"
            sSQL=sSQL & " INNER JOIN tbl_Inventory ON"
            sSQL=sSQL & " tbl_Inventory_System_Components_Session.s_Component_Item_No = tbl_Inventory.s_Item_No"
            sSQL=sSQL & " GROUP BY tbl_Inventory_System_Components_Session.intSessionID"
            sSQL=sSQL & ",tbl_Inventory_System_Components_Session.s_System_Item_No"
            sSQL=sSQL & " HAVING tbl_Inventory_System_Components_Session.intSessionID=" & intSessionID & " AND tbl_Inventory_System_Components_Session.s_System_Item_No='" & s_Item_No & "'"
            Set Rprice = Server.CreateObject("ADODB.Recordset")
            Rprice.Open sSQL, conn, 3, 3 'read
            Price=Rprice("SumOfcurSalesPrice")
            if session("Wholesaler")="True" then Price=Rprice("SumOfCost")+(Rprice("SumOfCost")*0.1)
        else
            sSQL="SELECT "
            sSQL=sSQL & "price, cost "
            sSQL=sSQL & "FROM tbl_Inventory "
            sSQL=sSQL & "WHERE s_Item_No='" & s_Item_No & "'"
            Set Rprice = Server.CreateObject("ADODB.Recordset")
            Rprice.Open sSQL, conn, 3, 3 'read
            Price=Rprice("price")
            if session("Wholesaler")="True" then Price=Rprice("cost")+(Rprice("cost")*0.1)
        end if
        Rprice.close
        set Rprice=nothing

        sSQL="SELECT s_Item_No, intSessionID, d_Date, intQuantity "
        sSQL=sSQL & "FROM tbl_ShoppingCart "
        sSQL=sSQL & "WHERE (s_Item_No='" & s_Item_No & "' AND intSessionID=" & intSessionID & ")"
        Set RS = Server.CreateObject("ADODB.Recordset")
        RS.Open sSQL, conn , 3, 3 'read
        if (RS.BOF and RS.EOF) then
            'this product ID does not exist in our shopping cart
            sSQL="INSERT INTO tbl_ShoppingCart "
            sSQL=sSQL & "(s_Item_No, intSessionID, intQuantity, Price, d_Date, UserID) "
            sSQL=sSQL & "Values ('" & s_Item_No & "', "
            sSQL=sSQL & intSessionID
            sSQL=sSQL & "," & intQuantity
            sSQL=sSQL & "," & Price
            sSQL=sSQL & ",#" & date & "#"
            sSQL=sSQL & "," & session("UserID")
            'sSQL=sSQL & "," & b_Quote
            sSQL=sSQL & ")"
        else
            'this Product ID already exists in our cart... increase qty
            sSQL="UPDATE tbl_ShoppingCart"
            sSQL=sSQL & " SET intQuantity=[intQuantity]+" & intQuantity
            sSQL=sSQL & " WHERE (s_Item_No='" & s_Item_No & "' AND intSessionID=" & intSessionID & ")"
        end if
        RS.close
        set RS=conn.execute(sSQL)
        HowManyAdded=HowManyAdded+1
        if err.number<>0 then
            'response.write "error: " & err.description & "<BR>"
        end if
    end if
next

if HowManyAdded>0 then
    '====================
    'move to ShowCart.asp
    '====================
    response.redirect "ShowCart.asp"
else
    '================================================
    'they selected nothing...go back to inventory.asp
    '================================================
    response.redirect "inventory.asp"
end if
%>


Er der nogen, der kan hjælpe mig hurtigt?

Med venlig hilsen
Per
Avatar billede Dan Nim Seniormester
15. september 1999 - 13:49 #1
Prøv at finde dette i dit script :

sSQL="INSERT INTO tbl_ShoppingCart "
                          sSQL=sSQL & "(s_Item_No, intSessionID, intQuantity, Price, d_Date, UserID) "
                          sSQL=sSQL & "Values ('" & s_Item_No & "', "
                          sSQL=sSQL & intSessionID
                          sSQL=sSQL & "," & intQuantity
                          sSQL=sSQL & "," & Price
                          sSQL=sSQL & ",#" & date & "#"
                          sSQL=sSQL & "," & session("UserID")
                          'sSQL=sSQL & "," & b_Quote
                          sSQL=sSQL & ")"



og skift det ud med :

sSQL="INSERT INTO tbl_ShoppingCart "
                          sSQL=sSQL & "(s_Item_No, intSessionID, intQuantity, Price, d_Date, UserID) "
                          sSQL=sSQL & "Values ('" & s_Item_No & "'"'"
                          sSQL=sSQL & ",'" & ntSessionID & "'"
                          sSQL=sSQL & ",'" & intQuantity & "'"
                          sSQL=sSQL & ",'" & Price & "'"
                          sSQL=sSQL & ",'#" & date & "'#"
                          sSQL=sSQL & ",'" & session("UserID") & "'"
                          'sSQL=sSQL & ",'" & b_Quote & "')"
Avatar billede pingo Nybegynder
15. september 1999 - 13:50 #2
Find linie 93, og deri vil stå "Conn.Execute(streng)"

Find ud af hvad den streng er, og udskriv den ved at skrive dette i linien LIGE før Conn.Execute står:

Response.Write streng

Så er det meget nemmere for os at se!
Avatar billede magic Nybegynder
15. september 1999 - 14:14 #3
Til chatstuff
Jeg prøvede dit svar, men det gav følgende fejl:Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access 97 Driver] Syntax error in date in query expression ''#9/15/99'#'.

/Iisadmin/Website/AddToCart.asp, line 92
Med venlig hilsen
Per

Avatar billede magic Nybegynder
15. september 1999 - 14:30 #4
Til pingo
Jeg prøvede dit svar og det gav følgende:INSERT INTO tbl_ShoppingCart (s_Item_No, intSessionID, intQuantity, Price, d_Date, UserID) Values ('RCR0003', 988468583,1,171.592,#9/15/99#,)
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access 97 Driver] Syntax error in INSERT INTO statement.

/Iisadmin/Website/AddToCart.asp, line 94
Med venlig hilsen
Per

Avatar billede Dan Nim Seniormester
15. september 1999 - 14:33 #5
magic...så virker det jo også¨-


Det er en anden fejl nu, prøv at ændre

sSQL=sSQL & ",'#" & date & "'#"

til

sSQL=sSQL & ",#" & date & "#"
Avatar billede pingo Nybegynder
15. september 1999 - 14:39 #6
Det kan jeg jo godt se..

Der bliver ikke sat noget UserID, og det gør der ikke fordi at variablen Session("UserID") ikke er sat - kan det tænkes at du har fjernet noget hvor folk logger sig ind?
Avatar billede magic Nybegynder
16. september 1999 - 11:10 #7
Til pingo
Det ser ud til at det er svaret. Ikke at jeg har pillet, men det var et ufærdigt system, som jeg har overtaget. Der er dog stadig et problem, og det er, hvordan får jeg isoleret Price, for jeg får følgende fejl nu:INSERT INTO tbl_ShoppingCart (s_Item_No, intSessionID, intQuantity, Price, d_Date) Values ('DF100ALP01', 1027955888,1,13,2,#16-09-99#)
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Number of query values and destination fields are not the same.

/AddToCart.asp, line 94

Jeg har prøvet med FormatCurrency og forskellige gæt, men så er fejlen type mismatch, og så er jeg lige vidt. Så inden jeg accepterer overførslen, kunne du så ikke lige give mig et praj.
Med venlig hilsen
Per

Avatar billede pingo Nybegynder
16. september 1999 - 11:13 #8
Du kan putte prisen i '' hvis den er med kommatal.
Avatar billede mk-software Nybegynder
11. november 1999 - 04:04 #9
magic >> Kan man ikke også få en kopi af dette shoppingcart system
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester