07. november 2003 - 12:10
Der er
19 kommentarer og 2 løsninger
hvad betyder denne fejl ?
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. /tri/validateOrder.asp, line 221
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
07. november 2003 - 12:13
#1
Det er en fejl "i databasen", forstået på den måde at du fx forsåger at sætte tekst ind i et tal-felt, eller en ulovlig dato, eller noget i den stil. Hvilken Database??
07. november 2003 - 12:17
#2
jamen jeg har lavet min access om til Mysql.. :-)
07. november 2003 - 12:19
#3
koden er i asp.. men hvordan finder jeg så hvor fejlen ligger ?
07. november 2003 - 13:39
#4
07. november 2003 - 13:45
#5
det kan jeg ikke få til at virke hvor skal jeg sætte den ind henne i koden ?
07. november 2003 - 13:48
#6
nu skriver den linie 221 ligger fejlen så før linie 221 eller efter eller på linie 221 ?
07. november 2003 - 13:52
#7
Hvis du opbygger en SQL-streng i linie 220 og kører den med ConnName.Execute(SQL) i linie 221, ligger fejlen i linie 220.
07. november 2003 - 14:11
#8
<% ' opret ordre intOrderID = Request.form("intOrderID") set rsOrder = Server.CreateObject("ADODB.Recordset") rsOrder.Open "SELECT * FROM orders WHERE orderID = " _ & intOrderID, Conn, adOpenStatic, adLockOptimistic, _ adCmdText if rsOrder.EOF then Response.Write "There is a problem with your order. " Response.Write "Please contact customer service." response.end else ' opret bruger hvis ikke han allerede er oprettet (logget ind) if session("UserID") = "" then set rsNewUser = Server.CreateObject("ADODB.Recordset") rsNewUser.Open "Users", Conn, adOpenStatic, adLockOptimistic, adCmdTable strUsername = Request.form("strUsername") strPassword = Request.form("strPassword") rsNewUser.addNew linie 221 rsNewUser("label") = strlabel rsNewUser("firma") = 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("Password") = strPassword rsNewUser.Update rsNewUser.Close set rsNewUser = Nothing
07. november 2003 - 15:04
#9
rsNewUser.Open "Select * From Tabel Where ID = 0", Conn, adOpenStatic, adLockOptimistic, adCmdTable Prøv det.
07. november 2003 - 19:05
#10
Fejlen kommer fordi man sætte en streng ind som er længere end max længden for det felt man sætte den ind i. Det er en fejl i mySQL ODBC driverne som gør at den ikke hendter max længden for feltet men den bruger den længe som de data der er i feltet som max længde og er feltet tomt så er længden 0 og lige meget hvad du sætter ind vil fejle... Løsningen er at lave det med en SQL sætning. SQL = INSERT INTO users (label,firma,first,last,address1,postalCode,city,phone,email,username,password) VALUES (" SQL = SQL & "'" & strlabel & "', " SQL = SQL & "'" & strFirma & "', " SQL = SQL & "'" & strFirst & "', " SQL = SQL & "'" & strLast & "', " SQL = SQL & "'" & strAddress1 & "', " SQL = SQL & "'" & strPostalCode & "', " SQL = SQL & "'" & strCity & "', " SQL = SQL & "'" & strPhone & "', " SQL = SQL & "'" & strEmail & "', " SQL = SQL & "'" & strUsername & "', " SQL = SQL & "'" & strPassword & "' " SQL = SQL & ")" Conn.Execute(SQL)
11. november 2003 - 10:35
#11
hej E du er som sædvanlig skarp... men hvordan får jeg den sat rigtig ind i min kode? se 07/11-2003 14:11:24 jeg har prøvet at sætte det ind men det gå ikke så godt.. måske kunne du lige sætte det ind hvor det skal stå :-) takker
11. november 2003 - 11:14
#12
Efter: if session("UserID") = "" then
11. november 2003 - 11:17
#13
sådan : if session("UserID") = "" then SQL = INSERT INTO users (label,firma,first,last,address1,postalCode,city,phone,email,username,password) VALUES (" SQL = SQL & "'" & strlabel & "', " SQL = SQL & "'" & strFirma & "', " SQL = SQL & "'" & strFirst & "', " SQL = SQL & "'" & strLast & "', " SQL = SQL & "'" & strAddress1 & "', " SQL = SQL & "'" & strPostalCode & "', " SQL = SQL & "'" & strCity & "', " SQL = SQL & "'" & strPhone & "', " SQL = SQL & "'" & strEmail & "', " SQL = SQL & "'" & strUsername & "', " SQL = SQL & "'" & strPassword & "' " SQL = SQL & ")" Conn.Execute(SQL) det virker ikke
11. november 2003 - 22:31
#14
hvilken fejl får du ? eller sætter den ikke i databasen?
12. november 2003 - 10:16
#15
nu fik jeg lige rettet koden til der manglede et " før INSERT.. nu sætter den fint ind men får samme fejl igen længere nede i koden: Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done. /tri/validateOrder.asp, line 250 if session("UserID") = "" then SQL = "INSERT INTO Users (label,fFirma,first,last,address1,postalCode,city,phone,email,username,password) VALUES (" SQL = SQL & "'" & strlabel & "', " SQL = SQL & "'" & strFirma & "', " SQL = SQL & "'" & strFirst & "', " SQL = SQL & "'" & strLast & "', " SQL = SQL & "'" & strAddress1 & "', " SQL = SQL & "'" & strPostalCode & "', " SQL = SQL & "'" & strCity & "', " SQL = SQL & "'" & strPhone & "', " SQL = SQL & "'" & strEmail & "', " SQL = SQL & "'" & strUsername & "', " SQL = SQL & "'" & strPassword & "' " SQL = SQL & ")" Conn.Execute(SQL) ' sæt variabel som bruges ifbm. udsendelse af mails længere nede til at tjekke om brugeren er ny newuser="Ja" ' find user id (ny bruger som lige er oprettet ovenfor) set rsUserID = Server.CreateObject("ADODB.Recordset") rsUserID.Open "SELECT UserID FROM Users WHERE Username = '"&strUsername&"' ", Conn, adOpenStatic, adLockOptimistic, adCmdText else ' find user id (eksisterende bruger) set rsUserID = Server.CreateObject("ADODB.Recordset") rsUserID.Open "SELECT UserID FROM Users WHERE UserID = "&session("UserID"), Conn, adOpenStatic, adLockOptimistic, adCmdText end if rsOrder("sAmt") = Request.form("intShipping") rsOrder("tax") = Request.form("intTax") Linie 250 = rsOrder("fLabel") = Request.form("strlabel") rsOrder("fFirma") = Request.form("strFirma") rsOrder("fName") = Request.form("strFirst") rsOrder("lName") = Request.form("strLast") rsOrder("email") = Request.form("strEmail") rsOrder("address1") = Request.form("strAddress1") rsOrder("city") = Request.form("strCity") rsOrder("postalcode") = Request.form("strPostalCode") rsOrder("phone") = Request.form("strPhone") rsOrder("sfName") = Request.form("strShipFirst") rsOrder("slName") = Request.form("strShipLast") rsOrder("sAddress") = Request.form("strShipAddress") rsOrder("sCity") = Request.form("strShipCity") rsOrder("sPostalcode") = Request.form("strShipPostalCode") rsOrder("sCountry") = Request.form("strShipCountry") rsOrder("sMethod") = Request.form("strShipMethod") rsOrder("total") = Request.form("intTotal") intTotal = Request.form("intTotal") rsOrder("orderDate") = Date rsOrder("UserID") = rsUserID("UserID") rsOrder("status") = "COMPLETE" rsOrder.Update
12. november 2003 - 23:02
#16
Det er det samme som gælder for dem, fejlen skyldes det samme, men indætter du ikke tingene to gange så når det sidste rs.AddNew er efter din if-sætning?
13. november 2003 - 08:55
#17
jo kunde oplysningerne bliver lagt i users (til at logge ind med) og i orders så man kan se hvad de har bestilt... hvordan se koden så ud hvis jeg skal have det til at virke ?
13. november 2003 - 18:55
#18
ja kan ikke se du åber rsOrder noget sted.. Hvis det er dobbelt kode så fjern alle de linjer med: rsOrder("xx") = Request.form("yy")
14. november 2003 - 08:46
#19
jeg åbner den øverst... men det er ikke dobblte på den måde jeg skal bruge infoen to gange :-) <% ' opret ordre intOrderID = Request.form("intOrderID") set rsOrder = Server.CreateObject("ADODB.Recordset") rsOrder.Open "SELECT * FROM orders WHERE orderID = " _ & intOrderID, Conn, adOpenStatic, adLockOptimistic, _ adCmdText if rsOrder.EOF then Response.Write "There is a problem with your order. " Response.Write "Please contact customer service." response.end else ' opret bruger hvis ikke han allerede er oprettet (logget ind) if session("UserID") = "" then SQL = "INSERT INTO Users (label,fFirma,first,last,address1,postalCode,city,phone,email,username,password) VALUES (" SQL = SQL & "'" & strlabel & "', " SQL = SQL & "'" & strFirma & "', " SQL = SQL & "'" & strFirst & "', " SQL = SQL & "'" & strLast & "', " SQL = SQL & "'" & strAddress1 & "', " SQL = SQL & "'" & strPostalCode & "', " SQL = SQL & "'" & strCity & "', " SQL = SQL & "'" & strPhone & "', " SQL = SQL & "'" & strEmail & "', " SQL = SQL & "'" & strUsername & "', " SQL = SQL & "'" & strPassword & "' " SQL = SQL & ")" Conn.Execute(SQL) ' sæt variabel som bruges ifbm. udsendelse af mails længere nede til at tjekke om brugeren er ny newuser="Ja" ' find user id (ny bruger som lige er oprettet ovenfor) set rsUserID = Server.CreateObject("ADODB.Recordset") rsUserID.Open "SELECT UserID FROM Users WHERE Username = '"&strUsername&"' ", Conn, adOpenStatic, adLockOptimistic, adCmdText else ' find user id (eksisterende bruger) set rsUserID = Server.CreateObject("ADODB.Recordset") rsUserID.Open "SELECT UserID FROM Users WHERE UserID = "&session("UserID"), Conn, adOpenStatic, adLockOptimistic, adCmdText end if rsOrder("sAmt") = Request.form("intShipping") rsOrder("tax") = Request.form("intTax") rsOrder("fLabel") = Request.form("strlabel") rsOrder("fFirma") = Request.form("strFirma") rsOrder("fName") = Request.form("strFirst") rsOrder("lName") = Request.form("strLast") rsOrder("email") = Request.form("strEmail") rsOrder("address1") = Request.form("strAddress1") rsOrder("city") = Request.form("strCity") rsOrder("postalcode") = Request.form("strPostalCode") rsOrder("phone") = Request.form("strPhone") rsOrder("sfName") = Request.form("strShipFirst") rsOrder("slName") = Request.form("strShipLast") rsOrder("sAddress") = Request.form("strShipAddress") rsOrder("sCity") = Request.form("strShipCity") rsOrder("sPostalcode") = Request.form("strShipPostalCode") rsOrder("sCountry") = Request.form("strShipCountry") rsOrder("sMethod") = Request.form("strShipMethod") rsOrder("total") = Request.form("intTotal") intTotal = Request.form("intTotal") rsOrder("orderDate") = Date rsOrder("UserID") = rsUserID("UserID") rsOrder("status") = "COMPLETE" rsOrder.Update Conn.Execute("DELETE FROM itemsOrdered WHERE " _ & "orderID = " & intOrderID) set rsItem = Server.CreateObject("ADODB.Recordset") rsItem.Open "itemsOrdered", Conn, adOpenStatic, adLockOptimistic, adCmdTable for each item in Request.form("strOrderItem") strOrderItem = cstr(item) itemInfo = split(strOrderItem, ",") rsItem.addNew rsItem("orderID") = intOrderID rsItem("productID") = itemInfo(0) rsItem("quantity") = itemInfo(1) rsItem.Update next rsItem.Close set rsItem = Nothing end if rsOrder.Close set rsOrder = Nothing session("username") = strUsername session("password") = strPassword session("betaling") = request("betaling")
14. november 2003 - 16:32
#20
Problemmet er det samme så det skal være en "rigtig" SQL sætning SQL = "INSERT INTO tabelnavn " SQL = SQL "(sAmt, tax, fLabel, fFirma, fName, lName, email, address1, city, postalcode, " SQL = SQL "phone, sfName, slName, sAddress, sCity, sPostalcode, sCountry, " SQL = SQL "sMethod, total, orderDate, UserID, status) " SQL = SQL " VALUES (" SQL = SQL "'" & Request.form("intShipping") & "', " SQL = SQL "'" & Request.form("intTax") & "', " SQL = SQL "'" & Request.form("strlabel") & "', " SQL = SQL "'" & Request.form("strFirma") & "', " SQL = SQL "'" & Request.form("strFirst") & "', " SQL = SQL "'" & Request.form("strLast") & "', " SQL = SQL "'" & Request.form("strEmail") & "', " SQL = SQL "'" & Request.form("strAddress1") & "', " SQL = SQL "'" & Request.form("strCity") & "', " SQL = SQL "'" & Request.form("strPostalCode") & "', " SQL = SQL "'" & Request.form("strPhone") & "', " SQL = SQL "'" & Request.form("strShipFirst") & "', " SQL = SQL "'" & Request.form("strShipLast") & "', " SQL = SQL "'" & Request.form("strShipAddress") & "', " SQL = SQL "'" & Request.form("strShipCity") & "', " SQL = SQL "'" & Request.form("strShipPostalCode") & "', " SQL = SQL "'" & Request.form("strShipCountry") & "', " SQL = SQL "'" & Request.form("strShipMethod") & "', " SQL = SQL "'" & Request.form("intTotal") & "', " SQL = SQL "'" & Date & "', " SQL = SQL "'" & rsUserID("UserID") & "', " SQL = SQL "'" & "COMPLETE" & & "' " SQL = SQL ")"
25. november 2003 - 14:19
#21
takker..
Kurser inden for grundlæggende programmering