webForumDet fria alternativet

medelandefunktion

ASPur ASP

7 svar · 167 visningar · startad av MoonCow

MoonCowMedlem sedan juni 2001223 inlägg
#1

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

MoonCowMedlem sedan juni 2001223 inlägg
#2

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

LarsGMedlem sedan dec. 200012 464 inlägg
#3

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

MoonCowMedlem sedan juni 2001223 inlägg
#4

*tackar och bugar*

------------------
all your base are belong to us

LarsGMedlem sedan dec. 200012 464 inlägg
#5

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

snekkorrMedlem sedan dec. 2000203 inlägg
#6

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%>

MoonCowMedlem sedan juni 2001223 inlägg
#7

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

McDMedlem sedan mars 20002 520 inlägg
#8

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!

www.McDz.net www.SweQuake.com

129 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)