Avatar billede l_otto Nybegynder
24. oktober 2003 - 14:18 Der er 22 kommentarer og
1 løsning

Hvad gør man når man få sådan en fejl?

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

[TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'productID =1' at line 1

/korth/addToCart.asp, line 66
Avatar billede erikjacobsen Ekspert
24. oktober 2003 - 14:22 #1
Du kan jo skrive din SQL-sætning ud og kig på den. Måske du mangler en WHERE ?
Avatar billede l_otto Nybegynder
24. oktober 2003 - 14:24 #2
jeg har lagt min access over på Mysql og nu laver den denne fejl den virker perkeft med en access db. så koden er ok og der er forbindelse til Mysql db.
Avatar billede erikjacobsen Ekspert
24. oktober 2003 - 14:26 #3
Der er forskel på SQL til access, og til MySql - som der forskel på dansk og svensk.

Det er nok derfor der er fejl i din SQL nu.
Avatar billede overchord Nybegynder
24. oktober 2003 - 14:26 #4
Har du chekket store og smaa bogstaver - mysql er jo case-sensitive, hvor Access ikke er det...
Avatar billede l_otto Nybegynder
24. oktober 2003 - 14:29 #5
men hvad kan fejlen være det er ligesom jeg ikke må insert addtocart er her hvor jeg ligger varen op i indkøbskurven..

indenda har jeg fint kunne hente varene frem og der er bogstav størrelse den samme
Avatar billede erikjacobsen Ekspert
24. oktober 2003 - 14:33 #6
Jeg kan ikke forstå hvad du skriver. Har du hørt om kommaer og punktummer?

Der er forskel på hvad man kan skrive i SQL i de 2 database systemer. Derfor.
Avatar billede l_otto Nybegynder
24. oktober 2003 - 14:36 #7
ok, tak erikjocobsen,

men hvordan kommer jeg så videre ? her er 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 erikjacobsen Ekspert
24. oktober 2003 - 14:37 #8
Jeg vil tro intOrderID er tom. Prøv at udskrive sqlText-variablen
Avatar billede l_otto Nybegynder
24. oktober 2003 - 14:39 #9
hvordan gør jeg det ? :-)

men jeg tror den kommer med for se hvad fejlen siger:

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

[TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'productID =9' at line 1

/korth/addToCart.asp, line 55
Avatar billede erikjacobsen Ekspert
24. oktober 2003 - 14:45 #10
Hvordan man udskriver?? Det må du da vide.

Men så har du nu een af forskellene mellem Access-SQL og rigtig SQL.
  ..where a=123and b=4
er ok i Access, mens
  ..where a=123 and b=4
er korrekt i begge. Det ville du nemt kunne se med en udskrift ;)
Avatar billede l_otto Nybegynder
04. november 2003 - 14:36 #11
jamen hjælp mig lidt med den udskrift :-)
Avatar billede egede Nybegynder
04. november 2003 - 14:47 #12
Response.Write sqlText
Response.End

Lige inden

set rsOrder = Conn.Execute(sqlText)

Kan gøre det :)
Avatar billede l_otto Nybegynder
04. november 2003 - 15:06 #13
viker og jeg har rettet fejlen... svar venligst... :-)
Avatar billede erikjacobsen Ekspert
04. november 2003 - 15:07 #14
Mig? Nej, tak - jeg var åbenbart ikke for god til at gøre dig opmærksom
på fejlen - jeg frafalder point.
Avatar billede l_otto Nybegynder
04. november 2003 - 15:19 #15
jamen så Egede da :-)
Avatar billede egede Nybegynder
04. november 2003 - 16:10 #16
Jeg vil ikke have dem, det er da erikjacobsens, jeg tilføjede jo bare en lille kommentar om hvordan du kunne udskrive sqlText. :)
Avatar billede l_otto Nybegynder
04. november 2003 - 16:20 #17
ok, hvad så med at der er en der hjælper med denne her, hvad betyder det og hvor finder jeg fejlen:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Invalid string or buffer length

/korth/validateOrder.asp, line 213
Avatar billede erikjacobsen Ekspert
04. november 2003 - 17:20 #18
Du må jo gerne vise koden. Måske strengen er for lang?
Avatar billede l_otto Nybegynder
05. november 2003 - 09:09 #19
hvad er en streng helt præcist ? her er noget af koden:

rsNewUser.addNew
        rsNewUser("orderID")    = strlabel
        rsNewUser("fFirma")        = strFirma
        rsNewUser("first")        = strFirst
        rsNewUser("last")        = strLast
        rsNewUser("address1")    = strAddress1
        rsNewUser("PostalCode")    = strPostalCode
        rsNewUser("City")        = strCity
        rsNewUser("Phone")        = strPhone
        rsNewUser("Email")        = strEmail
        rsNewUser("Username")    = strUsername
        rsNewUser("orderID")    = strPassword
        rsNewUser.Update

        rsNewUser.Close
        set rsNewUser = Nothing
Avatar billede l_otto Nybegynder
25. november 2003 - 14:22 #20
hej erik

kan du ikke lige svare så jeg kan lukke :-)
Avatar billede erikjacobsen Ekspert
25. november 2003 - 14:25 #21
Jeg har sagt nej tak. Kan du ikke læse?
Avatar billede l_otto Nybegynder
25. november 2003 - 14:33 #22
ok.. godt ord igen.. god tone...
Avatar billede erikjacobsen Ekspert
25. november 2003 - 14:48 #23
....glemt jeg en ;) ?
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