det är altså på rad en där det står:
RecSet.AddNew
som den säger det är fel....
------------------
all your base are belong to us
7 svar · 169 visningar · startad av MoonCow
Tjena!
Försöker bygga ihop en liten community som lunar för att lära mig lite mer innom asp. men... när jag ska skicka ett medelande får jag detta:
ADODB.Recordset (0x800A0CB3)
Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.
/mooncow/skicka_mess.asp, line 11
Vadå "This may be a limitation of the provider" får jag inte skriva till databaser lr?
så här ser min kod ut:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databejz.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From mess"
RecSet.Open Addera, Connect
RecSet.AddNew
RecSet("motagare") = Request.Form("motagare")
RecSet("mess") = Request.Form("mess")
RecSet("nowen") = now
RecSet("last") = 0
RecSet("fran") = Session("namn")
RecSet.Update
RecSet.Close
Connect.close
Set RecSet = nothing
Set databas = nothing
Response.Redirect "default.asp"
%>
Ovan ska altså skriva ett medelande till en person... ser ni nått fel?
------------------
all your base are belong to us
det är altså på rad en där det står:
RecSet.AddNew
som den säger det är fel....
------------------
all your base are belong to us
Felet är att du inte använder SQL.
Om du öppnar ett recordset utan ange locktype så är readonly default.
RecSet.Open Addera, Connect,3,3
------------------
essentitia preter non sans multiplicandum
Om man använder rs.addnew och sedan rs.update för att göra insert (en tabell med 3 kolumner) så blir det ungefär 50 anrop till databasklienten.
Däremot, om man använder execute med ett insert-statement så blir det 4 anrop.
Ett insert statememt för din tabell skulle kunna se ut som
sql = "insert into mess(motagare,mess,nowen,[last],fran) values ("
sql = sql & "'" replace(Request.Form("motagare"),"'","''") & "','"
sql = sql & "'" replace(Request.Form("mess"),"'","''") & "',now(),0,'"
sql = sql & "'" replace(session("namn"),"'","''") & "')"
connect.execute sql,,128
------------------
essentitia preter non sans multiplicandum
luktar idg kod :)... problemet är att du här --->RecSet.Open Addera, Connect<--- anropar lite juz ;) gör såhär innan koden <!-- #include file="adovbs.inc" --> förutsatt att du har den där :) har alltid samma problem själv §=D
------------------
<% Dim Emil, Carlsson, Bäst
Emil + Carlsson = bäst %>
<%=bäst%>
ok.. tack för era svar med... klipper och klistrar mest, är inte superinsatt i kopplingarna... men ska ändra det. Man vill ju bespara servern så mkt så möjligt :)
jo, brukar glömma att inkudera abdobvs.inc :r
------------------
all your base are belong to us
Det behöver du inte göra om du istället sätter in värden i filen...
tex add.optemistic :e har värde 3 enligt abdobvs.inc om du kollar i den... du kan alltså byta ut alla dessa mot sifferkombinationer istället. Bra om du bara använder ett fåtal.
------------------
McD- Burgers for the people!