webForumDet fria alternativet

Lackar på detta fel:Microsoft OLE DB Provider for ODBC Drivers error '80004005'

ASP

4 svar · 229 visningar · startad av DiDjo

Medlem sedan nov. 2002544 inlägg
Frågan#1

Varför får jag detta fel?

Microsoft OLE DB Provider for ODBC Drivers error '80004005' 

[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time. 

/kommun/gastbok.asp, line 101

Här är koden:

<%

nextPage = TRIM( Request("nextPage"))
IF nextPage = "" THEN nextPage = 1

Set Connect2 = Server.CreateObject("ADODB.Connection")
Connect2.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("***")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM gb where vemsgb='"&request.querystring("id")&"' order by id desc"
rs.Open Addera, Connect2, 3, 3 

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("****")
Set rs6 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM gaster where gnamn='"&gnamn&"'"
rs6.Open Addera, Connect, 3, 3

Set rs1 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM gaster where gnamn='"&request.querystring("id")&"'"
rs1.Open Addera, Connect, 3, 3 

if request.querystring("id") = gnamn then
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("***")
Set rs5 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM gb where vemsgb='"&request.querystring("id")&"' and last=0"
rs5.Open Addera, Connect, 3, 3 
if not rs5.eof then
do until rs5.eof
rs5("last")=1
rs5.update
rs5.movenext
loop
response.redirect "gastbok.asp?id="&gnamn
end if
end if

if request.querystring("action")="spara" then
if gnamn <> request.querystring("id") then
If Len(request.form("requiredinlagg")) < 10 Then
session("fel") = "Du kan väl skriva lite mer?"
response.redirect "gastbok.asp?id="&request.querystring("id")
end if
rs.addnew
rs("namn")= gnamn
rs("inlagg")=request.form("requiredinlagg")
rs("vemsgb")= request.querystring("id")
rs("datum") = now
rs.update

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("**")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM gaster where gnamn='"&Request.Cookies("gnamn")&"'"
rs.Open Addera, Connect, 3, 3 
if rs("gast")&"" = "" then 
gast = 0
else 
gast = rs("gast")
end if
rs("gast") = gast + 1
rs("pengar") = rs("pengar") + 7
[B]rs.update[/B]

response.redirect "gastbok.asp?id="&request.querystring("id")
end if
end if
rs.PageSize = 10
if not rs.EOF then
rs.AbsolutePage = nextPage
%>
<% END IF %>

Raden som det handlar om är markerad

Medlem sedan juni 200032 967 inlägg
#2

Dags att sluta använda ADO för att uppdatera, och använda UPDATE-frågor istället?

Medlem sedan nov. 2002544 inlägg
#3

öööö va? fattade inget av det där :P

Medlem sedan mars 20007 896 inlägg
#4

Istället för att använda ett Recordset när du ska uppdatera fält i databasen, använd SQL.

UPDATE tbl SET fld=fld+1 WHERE fldID=2

T.ex.
I ditt fall:

Dim strSQL
strSQL = "UPDATE gaster SET gast=gast+1, pengar=pengar+7 WHERE gnamn='" & Request.Cookies( "gnamn" ) & "'"
Connect.Execute( strSQL )
Medlem sedan nov. 2002544 inlägg
#5

å fan! Tackar! Det funkar nu! God jul!

260 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)