Read-Only ??

ASP

13 svar · 229 visningar · startad av jimpa

Medlem sedan jan. 2001361 inlägg
Trådstart#1

Hej,

Får upp detta meddelande när jag försöker lägga till en ny post i databasen.

ADODB.Recordset.1 error '80004005'

Recordset is read-only

Hmm, gör jag något fel när jag gör själva databasen då?
Typ någon inställning som man måste göra
för att få alla rättigheter.
Använder MS access 2000.
I såna fall hur ställer man in det?

//m.v.h. Jimpa

Medlem sedan feb. 20005 891 inlägg
#2

Får man se lite kod? :)

Medlem sedan jan. 2001361 inlägg
#3

Ok, lite kod

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=b1464-crossdata;Password=@01#$hefghhdgmlbfkjdhmpfbce"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM image "
RecSet.Open Addera, Connect

RecSet.AddNew
RecSet("imageID") = Request.Form("imageID")
RecSet("image") = Request.Form("image")
RecSet("imagetext") = Request.Form("imagetext")

RecSet.Update
RecSet.Close
Connect.Close
%>

Medlem sedan juni 200032 967 inlägg
#4

du öppnar ju med en readonly cursor juh!
om du nu prompt ska använda recordet-metoder för att lägga till och ändra data i en tabell måste du när du öppnar recordsetet ange ett par till parametrar.

eftersom jag aldrig gjort det, ty jag använder riktiga ( ;) ) databaser och anrop, så vet jag heller inte hur man gör. ;)

jag har för mig att den ena parametern, den första, brukar kallas adOpenDynamic, och den andra (japp, andra) brukar kallas adLockOptimistic.

kanske, som sagt. casca vet. :)

Medlem sedan feb. 20005 891 inlägg
#5

Enligt "default" är cursor'n satt till den "vanliga" statiska, testa att klämma in adOpenDynamic.. :)

Så istället för

RecSet.Open Addera, Connect

Så kläm in

RecSet.Open Addera, Connect, adOpenDynamic, adLockOptimistic

Lycka till mannen :e

r
Tror inte att man behöver köra med någon specifierad postlåsning, om man inte vill ha något annat än default alltså (det är en låsning som innebär att man inte kan ändra något) :)

Medlem sedan feb. 20005 891 inlägg
#6

eftersom jag aldrig gjort det, ty jag använder riktiga (;)) databaser och anrop, så vet jag heller inte hur man gör.

Riktiga databaser? ;)

Medlem sedan juni 200032 967 inlägg
#7

japp, hos mig heter dbms microsoft sql server, oracle eller ibm db2. :)

Medlem sedan juni 200032 967 inlägg
#8

r då alltså.

Medlem sedan feb. 20005 891 inlägg
#9

Jahapp ;)

Själv lirar jag med mySQL, har skippat Access :p

Medlem sedan jan. 2001361 inlägg
#10

Lade till det i koden och fick detta felmeddelande i stället

Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'RecSet'

/cross/admin/save_image.asp, line 31

Någon som vet vad som är fel?

//m.v.h. Jimpa

Medlem sedan juni 200032 967 inlägg
#11

har du inkluderat adovbs.inc på din sida?

vilken är rad 31?

Medlem sedan feb. 20005 891 inlägg
#12

Men hörrö, skippa Recordseten.. ;)
Nåt sånt här ska funka lika bra..

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=b1464-crossdata;Password=@01#$hefghhdgmlbfkjdhmpfbce"
Addera = "INSERT INTO image(imageID, image, imagetext) VALUES('" & Request.Form("imageID") & "','" & Request.Form("image") & "','" & Request.Form("imagetext") & "')"

Connect.Execute(Addera)
Connect.Close
Set Connect = Nothing
%>
Medlem sedan jan. 2001361 inlägg
#13

Tack för er hjälp fick det att funka nu!

//m.v.h. GLADE Jimpa

Medlem sedan feb. 200160 inlägg
#14

Jag ser att det löste sig för dig men tänkte bara berätta att om du ändå vill använda Recordset och öppna databasen så att det går att skriva i den. Skriv så här i själva öppningsfrasen.

RecSet.Open Addera, Connect, 1, 2

380 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
132 ms — deklarationer (db)
119 ms — hämta statistik (db)
125 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)