Avatar billede l_otto Nybegynder
13. september 2006 - 16:22 Der er 53 kommentarer og
1 løsning

Invalid use of Null: 'cstr'

møg fejl hvad betyder det ?

det er denne linie den fejler på

  intOrderID = cstr(Session("orderID"))



Koden

session("mail_sendt") = ""

    Sub CreateNewOrder()
        Application.lock
        if Application("orderID") = "" then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    intOrderID = rsMaxOrderId("biggestOrderId")
                    Application("orderID") = intOrderID+1
        end if
     
       
      intOrderID = Application("orderID")
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")
       
        Application("orderID") = Application("orderID") + 1
      Application.Unlock
    End Sub

    Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&nOrderID&", "&nProductID&", "&nQuant&")"
        Conn.Execute(sqlText)

    End Sub
 
 
   
    'Main program
    intProdID = Request.form("intProdID")
    intQuant = Request.form("intQuant")

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

    intOrderID = cstr(Session("orderID"))
    if intOrderID = "" then
      CreateNewOrder
    end if

    sqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & "AND productID =" & intProdID
    set rsOrder = Conn.Execute(sqlText)
   
    if rsOrder.EOF then
        txtInfo = "Dit indkøb er nu registreret og ligger i indkøbskurven" 
        AddToOrder intOrderID, intProdID, intQuant
    else
        txtInfo = "Dette produkt ligger allerede i din indkøbskurv."
    end if
   

%>
Avatar billede fennec Nybegynder
13. september 2006 - 16:29 #1
cStr() kan ikke finde ud af NULL/Nothing værdier. Ændre det til:
intOrderID = Session("orderID")&""
Avatar billede l_otto Nybegynder
13. september 2006 - 21:11 #2
nu er den sur over

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

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

/addToCart.asp, line 29

  Conn.Execute("INSERT INTO orders " _
Avatar billede fennec Nybegynder
13. september 2006 - 22:05 #3
Prøv at udskrive din sql til skærmen, så du kan se hvad der er galt med den.
Avatar billede l_otto Nybegynder
13. september 2006 - 22:12 #4
uu hvordan er det nu jeg gør det ? :-)
Avatar billede l_otto Nybegynder
13. september 2006 - 22:37 #5
det har virket f'r.. kan det v;re noget microsoft _
Avatar billede fennec Nybegynder
14. september 2006 - 08:21 #6
Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&nOrderID&", "&nProductID&", "&nQuant&")"
        response.write sqlText
        Conn.Execute(sqlText)
    End Sub

evt med en response.end lige efter write'en.
Avatar billede l_otto Nybegynder
14. september 2006 - 08:27 #7
men hvor skal jeg sætte det ind ? i toppen

<%   
'******************************************************
'Copyright©2000-2002 MetaLinks.com @ http://metalinks.com
'******************************************************   
Response.Expires = 0
Response.ExpiresAbsolute = DateAdd("d", -14, Now())
Response.AddHeader "cache-control", "no-store, must-revalidate, private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "private"

session("mail_sendt") = ""
Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&nOrderID&", "&nProductID&", "&nQuant&")"
        response.write sqlText
        Conn.Execute(sqlText)
    End Sub

    Sub CreateNewOrder()
        Application.lock
        if Application("orderID") = "" then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    intOrderID = rsMaxOrderId("biggestOrderId")
                    Application("orderID") = intOrderID+1
        end if
     
       
      intOrderID = Application("orderID")
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")
       
        Application("orderID") = Application("orderID") + 1
      Application.Unlock
    End Sub

    Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&nOrderID&", "&nProductID&", "&nQuant&")"
        Conn.Execute(sqlText)

    End Sub
 
 
   
    'Main program
    intProdID = Request.form("intProdID")
    intQuant = Request.form("intQuant")

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

  intOrderID = Session("orderID")&""
    if intOrderID = "" then
      CreateNewOrder
    end if

    sqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & "AND productID =" & intProdID
    set rsOrder = Conn.Execute(sqlText)
   
    if rsOrder.EOF then
        txtInfo = "Dit indkøb er nu registreret og ligger i indkøbskurven" 
        AddToOrder intOrderID, intProdID, intQuant
    else
        txtInfo = "Dette produkt ligger allerede i din indkøbskurv."
    end if
   

%>
Avatar billede fennec Nybegynder
14. september 2006 - 08:31 #8
Nej. I din "Sub AddToOrder(nOrderID, nProductID, nQuant)" funktion...
Avatar billede l_otto Nybegynder
14. september 2006 - 08:44 #9
samme fejl Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

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

/addToCart.asp, line 37

session("mail_sendt") = ""

Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&nOrderID&", "&nProductID&", "&nQuant&")"
        response.write sqlText
        Conn.Execute(sqlText)
    End Sub


    Sub CreateNewOrder()
        Application.lock
        if Application("orderID") = "" then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    intOrderID = rsMaxOrderId("biggestOrderId")
                    Application("orderID") = intOrderID+1
        end if
Avatar billede l_otto Nybegynder
14. september 2006 - 08:46 #10
jeg fatter ikke den laver den fejl.. det er et gratis shop og på deres side kører det perfekt.. men når jeg lægger den op på min server laver den fejl..

Uden jeg har rettet i koden =?
Avatar billede ellebaek Nybegynder
14. september 2006 - 12:47 #11
Fejlen er en type-fejl..
Er det dig der har indført det typecast med CStr() ?

For det der er problemet er at du sætter en tekststreng ind i din sql, men du fortæller den at det er en numerisk værdi der kommer ind..

Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ('"&nOrderID&"', "&nProductID&", "&nQuant&")"
        response.write sqlText
        Conn.Execute(sqlText)
    End Sub

Dette skulle løse dit problem med syntaxen... (' omkring nOrderID), men så er spørgsmålet hvilken datatype feltet OrderID har i din database...? Er det tal eller tekst..?
Avatar billede l_otto Nybegynder
14. september 2006 - 13:05 #12
OrderId er tal

Koden nu:

Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ('"&nOrderID&"', "&nProductID&", "&nQuant&")"
        response.write sqlText
        Conn.Execute(sqlText)
    End Sub

    Sub CreateNewOrder()
        Application.lock
        if Application("orderID") = "" then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    intOrderID = rsMaxOrderId("biggestOrderId")
                    Application("orderID") = intOrderID+1
        end if
     
       
      intOrderID = Application("orderID")
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")


Fejl:

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

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

/addToCart.asp, line 37

Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
Avatar billede ellebaek Nybegynder
14. september 2006 - 13:36 #13
så er det fordi du prøver at sætte en streng ind i et tal-felt..
så vil jeg mene at hele din kode skal se ud som:

<% 
'******************************************************
'Copyright©2000-2002 MetaLinks.com @ http://metalinks.com
'****************************************************** 
Response.Expires = 0
Response.ExpiresAbsolute = DateAdd("d", -14, Now())
Response.AddHeader "cache-control", "no-store, must-revalidate, private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "private"

session("mail_sendt") = ""
Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&nOrderID&", "&nProductID&", "&nQuant&")"
        Conn.Execute(sqlText)
    End Sub

    Sub CreateNewOrder()
        Application.lock
        if Application("orderID") = "" then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    intOrderID = rsMaxOrderId("biggestOrderId")
                    Application("orderID") = intOrderID+1
        end if
   
     
      intOrderID = Application("orderID")
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")
     
        Application("orderID") = Application("orderID") + 1
      Application.Unlock
    End Sub

    Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&nOrderID&", "&nProductID&", "&nQuant&")"
        Conn.Execute(sqlText)

    End Sub


 
    'Main program
    intProdID = Request.form("intProdID")
    intQuant = Request.form("intQuant")

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

  intOrderID = Session("orderID")
    if not isNumeric(intOrderID) then
      CreateNewOrder
    end if

    sqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & "AND productID =" & intProdID
    set rsOrder = Conn.Execute(sqlText)
 
    if rsOrder.EOF then
        txtInfo = "Dit indkøb er nu registreret og ligger i indkøbskurven"
        AddToOrder intOrderID, intProdID, intQuant
    else
        txtInfo = "Dette produkt ligger allerede i din indkøbskurv."
    end if
 

%>
Avatar billede l_otto Nybegynder
14. september 2006 - 13:38 #14
Den laver fejl på denne linie

  Conn.Execute("INSERT INTO orders " _

æv

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

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

/addToCart.asp, line 35
Avatar billede ellebaek Nybegynder
14. september 2006 - 13:51 #15
hmm....

mystisk...

<%
'******************************************************
'Copyright©2000-2002 MetaLinks.com @ http://metalinks.com
'******************************************************
Response.Expires = 0
Response.ExpiresAbsolute = DateAdd("d", -14, Now())
Response.AddHeader "cache-control", "no-store, must-revalidate, private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "private"

session("mail_sendt") = ""
Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&CInt(nOrderID)&", "&CInt(nProductID)&", "&CInt(nQuant)&")"
        Conn.Execute(sqlText)
    End Sub

    Sub CreateNewOrder()
        Application.lock
        if Application("orderID") = "" then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    intOrderID = CInt(rsMaxOrderId("biggestOrderId"))
                    Application("orderID") = intOrderID+1
        end if
 
   
      intOrderID = CInt(Application("orderID"))
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")
   
        Application("orderID") = Application("orderID") + 1
      Application.Unlock
    End Sub

    Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&CInt(nOrderID)&", "&CInt(nProductID)&", "&CInt(nQuant)&")"
        Conn.Execute(sqlText)

    End Sub



    'Main program
    intProdID = CInt(Request.form("intProdID"))
    intQuant = CInt(Request.form("intQuant"))

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

  intOrderID = Session("orderID")
    if not isNumeric(intOrderID) then
      CreateNewOrder
    end if

    sqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & "AND productID =" & intProdID
    set rsOrder = Conn.Execute(sqlText)

    if rsOrder.EOF then
        txtInfo = "Dit indkøb er nu registreret og ligger i indkøbskurven"
        AddToOrder intOrderID, intProdID, intQuant
    else
        txtInfo = "Dette produkt ligger allerede i din indkøbskurv."
    end if


%>

prøv det her, nu er der vidst i hvert fald ingen type fejl...
Avatar billede l_otto Nybegynder
14. september 2006 - 13:56 #16
Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'CInt'

/addToCart.asp, line 33


intOrderID = CInt(Application("orderID"))
Avatar billede ellebaek Nybegynder
14. september 2006 - 14:02 #17
det var da mystisk...
Så prøver vi noget andet...


<%
'******************************************************
'Copyright©2000-2002 MetaLinks.com @ http://metalinks.com
'******************************************************
Response.Expires = 0
Response.ExpiresAbsolute = DateAdd("d", -14, Now())
Response.AddHeader "cache-control", "no-store, must-revalidate, private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "private"

session("mail_sendt") = ""
Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&CInt(nOrderID)&", "&CInt(nProductID)&", "&CInt(nQuant)&")"
        Conn.Execute(sqlText)
    End Sub

    Sub CreateNewOrder()
        Application.lock
        if isNull(Application("orderID")) then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    intOrderID = CInt(rsMaxOrderId("biggestOrderId"))
                    Application("orderID") = intOrderID+1
        end if

 
      intOrderID = CInt(Application("orderID"))
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")
 
        Application("orderID") = Application("orderID") + 1
      Application.Unlock
    End Sub

    Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&CInt(nOrderID)&", "&CInt(nProductID)&", "&CInt(nQuant)&")"
        Conn.Execute(sqlText)

    End Sub



    'Main program
    intProdID = CInt(Request.form("intProdID"))
    intQuant = CInt(Request.form("intQuant"))

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

  intOrderID = Session("orderID")
    if not isNumeric(intOrderID) then
      CreateNewOrder
    end if

    sqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & "AND productID =" & intProdID
    set rsOrder = Conn.Execute(sqlText)

    if rsOrder.EOF then
        txtInfo = "Dit indkøb er nu registreret og ligger i indkøbskurven"
        AddToOrder intOrderID, intProdID, intQuant
    else
        txtInfo = "Dette produkt ligger allerede i din indkøbskurv."
    end if


%>
Avatar billede l_otto Nybegynder
14. september 2006 - 14:05 #18
Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'CInt'

/addToCart.asp, line 28


  intOrderID = CInt(rsMaxOrderId("biggestOrderId"))
Avatar billede l_otto Nybegynder
14. september 2006 - 14:05 #19
skal jeg ændre noget i DB ?
Avatar billede l_otto Nybegynder
14. september 2006 - 14:06 #20
Avatar billede ellebaek Nybegynder
14. september 2006 - 14:13 #21
nej... tror problemet er at der ikk er noget i databasen...

<%
'******************************************************
'Copyright©2000-2002 MetaLinks.com @ http://metalinks.com
'******************************************************
Response.Expires = 0
Response.ExpiresAbsolute = DateAdd("d", -14, Now())
Response.AddHeader "cache-control", "no-store, must-revalidate, private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "private"

session("mail_sendt") = ""
Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&CInt(nOrderID)&", "&CInt(nProductID)&", "&CInt(nQuant)&")"
        Conn.Execute(sqlText)
    End Sub

    Sub CreateNewOrder()
        Application.lock
        if isNull(Application("orderID")) then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    if rsMaxOrderId.eof then
                      intOrderID = 1
                    else
                      intOrderID = CInt(rsMaxOrderId("biggestOrderId"))
                    end if
                    Application("orderID") = intOrderID+1
        end if


      intOrderID = CInt(Application("orderID"))
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")

        Application("orderID") = Application("orderID") + 1
      Application.Unlock
    End Sub

    Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&CInt(nOrderID)&", "&CInt(nProductID)&", "&CInt(nQuant)&")"
        Conn.Execute(sqlText)

    End Sub



    'Main program
    intProdID = CInt(Request.form("intProdID"))
    intQuant = CInt(Request.form("intQuant"))

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

  intOrderID = Session("orderID")
    if not isNumeric(intOrderID) then
      CreateNewOrder
    end if

    sqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & "AND productID =" & intProdID
    set rsOrder = Conn.Execute(sqlText)

    if rsOrder.EOF then
        txtInfo = "Dit indkøb er nu registreret og ligger i indkøbskurven"
        AddToOrder intOrderID, intProdID, intQuant
    else
        txtInfo = "Dette produkt ligger allerede i din indkøbskurv."
    end if


%>

tror vi er ved at være der...
Avatar billede l_otto Nybegynder
14. september 2006 - 14:20 #22
ja men nu sætter den det jeg havde i copy ind ? og man kan ikke går til indkøbskurv

prøv http://www.trianglens.dk/product.asp?intProdID=26
Avatar billede ellebaek Nybegynder
14. september 2006 - 14:21 #23
det du havde i copy?
Avatar billede l_otto Nybegynder
14. september 2006 - 14:24 #24
sorry glem det

Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'CInt'

/addToCart.asp, line 31

intOrderID = CInt(rsMaxOrderId("biggestOrderId"))
Avatar billede ellebaek Nybegynder
14. september 2006 - 14:30 #25
hmm... jeg tror efterhånden jeg må melde pas så... det er meget mystisk, og synes variablene ryger lidt omkring..

Men jeg har fået en anden fejl som vi kan prøve om hjælper..

<%
'******************************************************
'Copyright©2000-2002 MetaLinks.com @ http://metalinks.com
'******************************************************
Response.Expires = 0
Response.ExpiresAbsolute = DateAdd("d", -14, Now())
Response.AddHeader "cache-control", "no-store, must-revalidate, private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "private"

session("mail_sendt") = ""
Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&CInt(nOrderID)&", "&CInt(nProductID)&", "&CInt(nQuant)&")"
        Conn.Execute(sqlText)
    End Sub

    Sub CreateNewOrder()
        Application.lock
        if isNull(Application("orderID")) then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    if rsMaxOrderId.eof then
                      intOrderID = 1
                    else
                      intOrderID = CInt(rsMaxOrderId("biggestOrderId"))
                    end if
                    Application("orderID") = intOrderID+1
        end if


      intOrderID = CInt(Application("orderID"))
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")

        Application("orderID") = Application("orderID") + 1
      Application.Unlock
      CreateNewOrder = intOrderID
    End Sub

    Sub AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&CInt(nOrderID)&", "&CInt(nProductID)&", "&CInt(nQuant)&")"
        Conn.Execute(sqlText)

    End Sub



    'Main program
    intProdID = CInt(Request.form("intProdID"))
    intQuant = CInt(Request.form("intQuant"))

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

  intOrderID = Session("orderID")
    if not isNumeric(intOrderID) then
      intOrderID = CreateNewOrder
    end if

    sqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & "AND productID =" & intProdID
    set rsOrder = Conn.Execute(sqlText)

    if rsOrder.EOF then
        txtInfo = "Dit indkøb er nu registreret og ligger i indkøbskurven"
        AddToOrder intOrderID, intProdID, intQuant
    else
        txtInfo = "Dette produkt ligger allerede i din indkøbskurv."
    end if


%>
Avatar billede l_otto Nybegynder
14. september 2006 - 14:33 #26
nej ikke give op :-) pls. vi er der næsten

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'CreateNewOrder'

/addToCart.asp, line 67

intOrderID = CreateNewOrder
Avatar billede l_otto Nybegynder
14. september 2006 - 14:42 #27
måske du gider prøve den det er hurtigt at lægge op

http://www.trianglens.dk/mcartfree.zip
Avatar billede ellebaek Nybegynder
14. september 2006 - 14:43 #28
heh... det var lige mig der var dum der :-)

den tager jeg lige fra mig selv igen...

<%
'******************************************************
'Copyright©2000-2002 MetaLinks.com @ http://metalinks.com
'******************************************************
Response.Expires = 0
Response.ExpiresAbsolute = DateAdd("d", -14, Now())
Response.AddHeader "cache-control", "no-store, must-revalidate, private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "private"

session("mail_sendt") = ""
function AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&CInt(nOrderID)&", "&CInt(nProductID)&", "&CInt(nQuant)&")"
        Conn.Execute(sqlText)
    End function

    function CreateNewOrder()
        Application.lock
        if isNull(Application("orderID")) then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    if rsMaxOrderId.eof then
                      intOrderID = 1
                    else
                      intOrderID = CInt(rsMaxOrderId("biggestOrderId"))
                    end if
                    Application("orderID") = intOrderID+1
        CreateNewOrder = IntOrderID
        end if


      intOrderID = CInt(Application("orderID"))
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")

        Application("orderID") = Application("orderID") + 1
      Application.Unlock
    End function




    'Main program
    intProdID = CInt(Request.form("intProdID"))
    intQuant = CInt(Request.form("intQuant"))

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

  intOrderID = Session("orderID")
    if not isNumeric(intOrderID) then
      intOrderID = CreateNewOrder()
    end if

    sqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & "AND productID =" & intProdID
    set rsOrder = Conn.Execute(sqlText)

    if rsOrder.EOF then
        txtInfo = "Dit indkøb er nu registreret og ligger i indkøbskurven"
        AddToOrder(intOrderID, intProdID, intQuant)
    else
        txtInfo = "Dette produkt ligger allerede i din indkøbskurv."
    end if


%>

prøv lige denne...
Avatar billede ellebaek Nybegynder
14. september 2006 - 14:44 #29
nej nej....

denne linie:
CreateNewOrder = IntOrderID

skal flyttes til inden end Function
Avatar billede l_otto Nybegynder
14. september 2006 - 14:47 #30
kan jeg få hele koden rigtig :-)
Avatar billede ellebaek Nybegynder
14. september 2006 - 14:49 #31
<%
'******************************************************
'Copyright©2000-2002 MetaLinks.com @ http://metalinks.com
'******************************************************
Response.Expires = 0
Response.ExpiresAbsolute = DateAdd("d", -14, Now())
Response.AddHeader "cache-control", "no-store, must-revalidate, private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "private"

session("mail_sendt") = ""
function AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&CInt(nOrderID)&", "&CInt(nProductID)&", "&CInt(nQuant)&")"
        Conn.Execute(sqlText)
    End function

    function CreateNewOrder()
        Application.lock
        if isNull(Application("orderID")) then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    if rsMaxOrderId.eof then
                      intOrderID = 1
                    else
                      intOrderID = CInt(rsMaxOrderId("biggestOrderId"))
                    end if
                    Application("orderID") = intOrderID+1

        end if


      intOrderID = CInt(Application("orderID"))
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")

        Application("orderID") = Application("orderID") + 1
      Application.Unlock
        CreateNewOrder = IntOrderID
    End function




    'Main program
    intProdID = CInt(Request.form("intProdID"))
    intQuant = CInt(Request.form("intQuant"))

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

  intOrderID = Session("orderID")
    if not isNumeric(intOrderID) then
      intOrderID = CreateNewOrder()
    end if

    sqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & "AND productID =" & intProdID
    set rsOrder = Conn.Execute(sqlText)

    if rsOrder.EOF then
        txtInfo = "Dit indkøb er nu registreret og ligger i indkøbskurven"
        AddToOrder(intOrderID, intProdID, intQuant)
    else
        txtInfo = "Dette produkt ligger allerede i din indkøbskurv."
    end if


%>

så skidt... :-)
Avatar billede l_otto Nybegynder
14. september 2006 - 14:51 #32
Microsoft VBScript compilation error '800a0414'

Cannot use parentheses when calling a Sub

/addToCart.asp, line 69

AddToOrder(intOrderID, intProdID, intQuant)
Avatar billede ellebaek Nybegynder
14. september 2006 - 14:58 #33
hmm... det giver ikk nogen mening, da det ikk er en sub med en function der bliver kaldt...??

har du rettet hele koden til som ovenfor?
Avatar billede l_otto Nybegynder
14. september 2006 - 15:05 #34
her er koden :

<%
'******************************************************
'Copyright©2000-2002 MetaLinks.com @ http://metalinks.com
'******************************************************
Response.Expires = 0
Response.ExpiresAbsolute = DateAdd("d", -14, Now())
Response.AddHeader "cache-control", "no-store, must-revalidate, private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "private"

session("mail_sendt") = ""
function AddToOrder(nOrderID, nProductID, nQuant)
        sqlText = "INSERT INTO itemsOrdered " _
            & " (orderID, productID, quantity) values " _
            & " ("&CInt(nOrderID)&", "&CInt(nProductID)&", "&CInt(nQuant)&")"
        Conn.Execute(sqlText)
    End function

    function CreateNewOrder()
        Application.lock
        if isNull(Application("orderID")) then
                    strMaxOrderIdSQL = "SELECT MAX(orderId) AS biggestOrderId FROM orders"
                    Set rsMaxOrderId = Conn.Execute(strMaxOrderIdSQL)
                    if rsMaxOrderId.eof then
                      intOrderID = 1
                    else
                      intOrderID = CInt(rsMaxOrderId("biggestOrderId"))
                    end if
                    Application("orderID") = intOrderID+1

        end if


      intOrderID = CInt(Application("orderID"))
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO orders " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")

        Application("orderID") = Application("orderID") + 1
      Application.Unlock
        CreateNewOrder = IntOrderID
    End function




    'Main program
    intProdID = CInt(Request.form("intProdID"))
    intQuant = CInt(Request.form("intQuant"))

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

  intOrderID = Session("orderID")
    if not isNumeric(intOrderID) then
      intOrderID = CreateNewOrder()
    end if

    sqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & "AND productID =" & intProdID
    set rsOrder = Conn.Execute(sqlText)

    if rsOrder.EOF then
        txtInfo = "Dit indkøb er nu registreret og ligger i indkøbskurven"
        AddToOrder(intOrderID, intProdID, intQuant)
    else
        txtInfo = "Dette produkt ligger allerede i din indkøbskurv."
    end if


%>
Avatar billede ellebaek Nybegynder
14. september 2006 - 15:07 #35
hmm...

det forstår jeg ik...

men bliver nødt til at smutte nu, håber du får det løst.
Avatar billede l_otto Nybegynder
14. september 2006 - 15:10 #36
ok tak for kampen
Avatar billede fennec Nybegynder
14. september 2006 - 16:14 #37
Funktioner/sub's som kaldes med parametre uden variabel returnering skal kaldes via CALL:

CALL AddToOrder(intOrderID, intProdID, intQuant)
Avatar billede l_otto Nybegynder
14. september 2006 - 16:18 #38
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'orderID =AND productID =4'.

/addToCart.asp, line 65
Avatar billede l_otto Nybegynder
14. september 2006 - 16:18 #39
line 65

set rsOrder = Conn.Execute(sqlText)
Avatar billede fennec Nybegynder
14. september 2006 - 16:32 #40
Dit intOrderID er tomt.
Avatar billede l_otto Nybegynder
14. september 2006 - 21:43 #41
ok hvad gør jeg ?tager den det ikke med over fra siden før ?

kode fra siden før

<%
'******************************************************
'Copyright©2000-2002 MetaLinks.com @ http://metalinks.com
'****************************************************** 

intProdID = Request.QueryString("intProdID")
%>


<%
      Set Conn = Server.CreateObject("ADODB.Connection")
      Conn.Open ConString
     
      Set rsProdInfo = Conn.Execute("SELECT * FROM " & _
        "products where productID="&intProdID)
      if rsProdInfo.EOF then
        Response.Write "Product Number " & intProdID & _
            " does not exist."
      else
        strName = rsProdInfo("productName")
        strDesc = rsProdInfo("productDesc")
        strImage = rsProdInfo("productImg")
        intPrice = rsProdInfo("productPrice")
%> <td colspan=3 height="17" class="BoxTop"><DIV ALIGN="left"><B><%= strName %></B></DIV></FONT></div></tr></table>
<p><font face="Verdana" size="2"></font></p>
<table border="0" cellspacing="0" cellpadding="2"><BR>
<tr>
<td><img src="<%= strImage %>" align="left" border="0"></a>
<td valign="top"><%= strDesc %></font></td>
<tr>
</table>
<BR><BR><BR><BR><table width="100%" border="0" cellspacing="0" cellpadding="0">
<form action="addToCart.asp" method="post" id="form1" name="form1">

        <input type="hidden" name="intProdID" value="<%= intProdID %>">
 
      <td align="right" valign="middle" nowrap> <input type="text" size="1" name="intQuant" class="Formindhold" value="1" onChange="HandleError(this)">
 
      <input type="submit" value="køb" id="submit1" class="knap" name="submit1">
             
  <b>Pris: Dkr <%= formatNumber(intPrice, 2) %></font></td></b>
    </tr>

</form>

<%
end if
rsProdInfo.Close
set rsProdInfo = Nothing
   
Conn.Close
set Conn = Nothing
%>
Avatar billede fennec Nybegynder
15. september 2006 - 08:44 #42
Jeg kan ikke se noget OrderID i den kode??

Men hvorfor bruger du overhoved application til at styre dine order ider?? Det trækker du jo bare ud når du opretter en ny order (autonummer på orderID).
Avatar billede l_otto Nybegynder
15. september 2006 - 11:28 #43
jamen jeg ved det ikke det er en gratis shop jeg bruger
Avatar billede fennec Nybegynder
15. september 2006 - 11:59 #44
Tjek lige din CreateNewOrder() function:

function CreateNewOrder()
  Application.lock
  response.write "Status: "& isNull(Application("orderID")) '<-- Tilføj denne linje
  if isNull(Application("orderID")) then

Der skulle nu gerne blive udskrevet true eller false.
Avatar billede l_otto Nybegynder
15. september 2006 - 12:08 #45
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'orderID =AND productID =15'.

/addToCart.asp, line 68
Avatar billede fennec Nybegynder
15. september 2006 - 12:17 #46
Linje 68??
Avatar billede l_otto Nybegynder
15. september 2006 - 12:54 #47
set rsOrder = Conn.Execute(sqlText)

sorry
Avatar billede fennec Nybegynder
15. september 2006 - 13:13 #48
Tror det har noget med disse linjer at gøre:

intOrderID = Session("orderID")
if not isNumeric(intOrderID) then
  intOrderID = CreateNewOrder()
end if

Det tjekker vi lige, så smide lige to linjer ind:
intOrderID = Session("orderID")
response.write "OrderID: "& intOrderID &"**<br>"
response.write "Er tal: "& (not isNumeric(intOrderID))
if not isNumeric(intOrderID) then
Avatar billede l_otto Nybegynder
15. september 2006 - 14:22 #49
OrderID: **
Er tal: False
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'orderID =AND productID =10'.

/addToCart.asp, line 70
Avatar billede fennec Nybegynder
15. september 2006 - 14:34 #50
Så langt så godt. Prøv at ændre linje:
intOrderID = Session("orderID")

til
intOrderID = Session("orderID")&""
Avatar billede l_otto Nybegynder
15. september 2006 - 14:56 #51
OrderID: **
Er tal: TrueStatus: True
Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'CInt'

/addToCart.asp, line 34
Avatar billede fennec Nybegynder
15. september 2006 - 20:52 #52
Linje 34 er det denne??
intOrderID = CInt(rsMaxOrderId("biggestOrderId"))

For så skal vi have rette til denne kode:

if rsMaxOrderId.eof then
  intOrderID = 1
else
  if isNumeric(rsMaxOrderId("biggestOrderId")&"") then
    intOrderID = CInt(rsMaxOrderId("biggestOrderId"))
  else
    intOrderID = 1
  end if
end if
Application("orderID") = intOrderID+1
Avatar billede l_otto Nybegynder
15. september 2006 - 20:57 #53
Du er fantastisk !!!!!!!!!!!! løst fredag aften 1000 milioner tak !!!
Avatar billede fennec Nybegynder
16. september 2006 - 00:17 #54
no prob :o)

.o) <-- One Eyed Jack
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
Kategori
Kurser inden for grundlæggende programmering

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