Får detta fel, kom inte fram innan jag flyttade databasen till MySQL förresten:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
Här är koden:
SQL = "SELECT * from Data WHERE ID = " & Request("ID") & ""
rs.open sql, conn, 2, 2, adCmdText
'Set the table column = to my input text box from my form
rs("Name") = Request("Name")
IF Request("Category") = "" THEN
rs("Category") = Request("AddCategory")
ELSE
rs("Category") = Request("Category")
END IF
IF Request("SubCategory") = "" THEN
rs("SubCategory") = Request("AddSubCategory")
ELSE
rs("SubCategory") = Request("SubCategory")
END IF
IF Request("Species") = "" THEN
rs("Species") = Request("AddSpecies")
ELSE
rs("Species") = Request("Species")
END IF
rs("Source") = Request("Source")
IF NOT Request("Image") = "" THEN
rs("Image") = Request("Image")
END IF
rs("Description") = Request("Description")
rs.update
Sista raden är rad 221, och det är den som det klagas på.
Jesper TMedlem sedan nov. 20017 144 inlägg Börja med att ändra denna rad:
SQL = "SELECT * from Data WHERE ID = " & Request("ID") & ""
Till:
SQL = "SELECT * from Data WHERE ID = " & Request("ID")
Tja nu klagar det på rad 213:
rs("SubCategory") = Request("SubCategory")
Varför skulle SQL satsen ändras?
Det kan visst ha nått att göra med fälten enligt vad jag har sett.
Så här är en lista av fälten:
[B]Name Type Null[/B]
ID int No
Category Varchar(200) Yes
Subcategory Varchar(255) Yes
Name Varchar(200) Yes
Species Varchar(200) Yes
Description text Yes
Image Varchar(200) Yes
Source Varchar(200) Yes
Jesper TMedlem sedan nov. 20017 144 inlägg
Varför skulle SQL satsen ändras?
När Id är ett nummeriskt värde så skall det se ut så.
Vad ligger i request("id") då? ett nummeriskt värde?
Prova:
SQL = "SELECT * from Data WHERE ID = " & cInt(Request("ID"))
Jesper TMedlem sedan nov. 20017 144 inlägg kanske ännu bättre med:
SQL = "SELECT * from [Data] WHERE ID = " & cInt(Request("ID"))
Näpp det funkade inte heller, ID är en räknare(primärnyckel), och den gamla koden fungerar fint om jag kör via Access DB istället.
Dendär sista gav istället ett syntax fel.
Uppenbarligen så är detta nått problem med MySQL och Access skillnader iaf.
Hej, gjort några ändringar nu och nu säger det:
Microsoft Cursor Engine (0x80040E38)
Row cannot be located for updating. Some values may have been changed since it was last read.
/wh40k/admin/modify.asp, line 226
linje 226 är den sista raden som innehåller "rs.update"
solbulleMedlem sedan mars 20015 287 inlägg rs.open sql, conn, 2, 2, adCmdText
Kanske ska det vara:
rs.open sql, conn, 3, 3, adCmdText
Kanske, kan inte pröva nu, kan du säga vad det är för skillnad?
Engine^Medlem sedan dec. 20003 887 inlägg rs.open sql, conn, CursorType, LockType, EditMode
Matnyttigt för dig som använder recordset.open ;)
Tja, ibland tänker jag på att migrera till en SQL update lösning...
Jo, funkar fortfarande inte, nu sk*ter jag i detta och gör en SQL UPDATE sats istället....
Japp, den körs inom en if sats så den blir rätt, den funkade helt perfekt med Access databasen innan.