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
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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