webForumDet fria alternativet

RecordSet, Database or object is read-only.

2 svar · 366 visningar · startad av Donatello

DonatelloMedlem sedan jan. 2005108 inlägg
#1

Nu har jag försökt få det här att funka i två timmar och enligt alla guider jag har läst, så ska det göra det. Men icke...

<!-- #include virtual = "/adovbs.inc" -->
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mapp/databas.mdb")

set RecSet = Server.CreateObject("ADODB.Recordset")

add_db = "SELECT * FROM " & Request.Form("option0")

RecSet.Open add_db, Conn, adOpenStatic, adLockOptimistic
RecSet.AddNew

RecSet("option1") = Request.Form("option1")
RecSet("option2") = Request.Form("option2")
RecSet("option3") = Request.Form("option3")
RecSet("option4") = Request.Form("option4")
RecSet("option5") = Request.Form("option5")
RecSet("option6") = Request.Form("option6")

RecSet.Update
RecSet.Close
Conn.Close
%>

Hela tiden får jag felmeddelandet

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Cannot update. Database or object is read-only.

/add_process.asp, line 21

Jag vet att jag har både läs och skrivrättigheter i katalogen där databasen ligger. Jag ringde till och med nyss till webbhotellet och dubbelkollade det med dom.

Nån som ser om det är nåt fel i koden? x(

@ndersMedlem sedan juni 200026 914 inlägg
#2

Du borde inte kunna lägga till data med .addnew eftersom du öppnar recordsetet med cursortypen adOpenStatic.

Jag föreslår följande:

  1. Byt anslutning till OLEDB
  2. Byt cursortyp till adOpenDynamic eller lägg till data mha en INSERT och skippa recordsetet helt. Jag hade valt det senare.

http://www.devguru.com/technologies/ado/quickref/recordset_open.html

mvh

DonatelloMedlem sedan jan. 2005108 inlägg
#3

Funkar prima. Tack. :)

Genererad på 369 ms · cache AV · v20260730165559-full.f96bc7eb