Avatar billede l_otto Nybegynder
04. november 2003 - 14:39 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

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 a-torsten Nybegynder
04. november 2003 - 14:40 #1
Måske vi ku få lov at se SQL-sætningen.....

/Anders
Avatar billede kovalt Nybegynder
04. november 2003 - 14:40 #2
hvad er din SQL?
Avatar billede erikjacobsen Ekspert
04. november 2003 - 14:46 #3
Løsningen er sådan set givet i http://exp.dk/spm/418221
24/10-2003 14:45:09
Avatar billede kovalt Nybegynder
04. november 2003 - 14:51 #4
jamen - så er der vel ikke mere at komme efter her :-)
Avatar billede l_otto Nybegynder
04. november 2003 - 15:05 #5
jo jo, nu har jeg rettet den fejl :-) så når jeg til checkout.asp og den giver mig denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

Query-based update failed because the row to update could not be found.

/korth/checkout.asp, line 72
Avatar billede kovalt Nybegynder
04. november 2003 - 15:06 #6
det er fordi du i din SQL angiver en kolonne, der ikke findes i din DB

/Kovalt
Avatar billede l_otto Nybegynder
04. november 2003 - 15:07 #7
kan man finde ud af hvilken ?
Avatar billede kovalt Nybegynder
04. november 2003 - 15:08 #8
nej ikke uden du sammenligner.....

du kan evt. lave en

response.write strSQL
Avatar billede l_otto Nybegynder
04. november 2003 - 15:18 #9
hvor :-)

<% 
else
       
        intOrderID = cstr(Session("orderID"))

        set rsProd = Server.CreateObject("ADODB.Recordset")
        rsProd.Open "SELECT * FROM itemsOrdered " _
            & "WHERE orderID="& intOrderID, _
            Conn, adOpenDynamic, adLockPessimistic, adCmdText
        while not rsProd.EOF

            element = "quant" & rsProd("productID")
            intQuant = Request.form(element)

            if intQuant <> "" and isNumeric(intQuant) then
                if intQuant = 0 then
                    rsProd.Delete
                else
                    rsProd("quantity") = intQuant
                end if
            end if
            rsProd.Update

            rsProd.MoveNext


        wend

        if Request.form("control") = "Update Order" then

            rsProd.Close
            set rsProd = Nothing
   
            Conn.Close
            set Conn = Nothing

            Response.Redirect "reviewOrder.asp"
        else
       
        if rsProd.BOF and rsProd.EOF then
                rsProd.Close
                set rsProd = Nothing
           
                Conn.Close
                set Conn = Nothing
               
                Session("orderID") = ""
                Response.Redirect "checkout.asp"
           
        else
%>
Avatar billede l_otto Nybegynder
04. november 2003 - 15:18 #10
linie 72 = rsProd.Update
Avatar billede kovalt Nybegynder
04. november 2003 - 15:22 #11
Fejlen er her:

if intQuant <> "" and isNumeric(intQuant) then
                if intQuant = 0 then
                    rsProd.Delete
                else
                    rsProd("quantity") = intQuant
                end if
            end if
            rsProd.Update

            rsProd.MoveNext

din rsProd.Update ligger udenfor If-betingelsen. Det der er sket her er at din post er blevet slettet i din DB (ved rsProd.Delete) - herefter forsøger du at opdatere den, hvilket naturligvis ikke kan lade sig gøre.

Du skal ha din rsProd.Update ind i if-betingelsen

/Kovalt
Avatar billede l_otto Nybegynder
04. november 2003 - 15:27 #12
jeg løste den det var:

element = "quant" & rsProd("productID")

laves om til

element = "quantity" & rsProd("productID")
Avatar billede l_otto Nybegynder
04. november 2003 - 15:28 #13
men så har jeg denne :

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

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

/korth/validateOrder.asp, line 210
line 210 = rsNewUser("Email")        = strEmail
Avatar billede kovalt Nybegynder
04. november 2003 - 15:29 #14
man tildeler værdier sådan her:

strEmail = rsNewUser("Email")

og ikke

rsNewUser("Email") = strEmail

/Kovalt
Avatar billede l_otto Nybegynder
04. november 2003 - 15:32 #15
jamen de virker på alle de andre:
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

det er først når den kommer til Email... den bliver sur...
Avatar billede kovalt Nybegynder
04. november 2003 - 15:33 #16
hmmm.... jeg bliver nødt til at smutte... kommer igen om et par timer
Avatar billede l_otto Nybegynder
04. november 2003 - 15:35 #17
ok, tak det er noget mærkeligt noget når den eksaskt samme kode virker med access 2000 db
Avatar billede l_otto Nybegynder
04. november 2003 - 16:00 #18
nu giver den mig denne her hvad betyder det ?:

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
05. november 2003 - 06:32 #19
Jeg forstår ikke helt at du undrer dig. Access og MySql er forskellige, og
Microsoft produkter er ikke synderlig kendt for at være kompatible med
andet.

Med MySql kan det *ikke* anbefales at bruge ADODB-måden at opdatere på
(dvs rs.addNew ... rs.update), men alene ren SQL: INSERT, UPDATE osv.
Avatar billede l_otto Nybegynder
07. november 2003 - 11:24 #20
nå men hvordan kommer vi så videre her ?
Avatar billede erikjacobsen Ekspert
07. november 2003 - 18:55 #21
Bruger INSERT og UPDATE-sætninger i SQL
Avatar billede l_otto Nybegynder
11. november 2003 - 10:40 #22
jo tak.. men hvordan :-) erik jeg er ikke så sej til det desværre..
Avatar billede l_otto Nybegynder
25. november 2003 - 14:20 #23
jeg lukker..
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