webForumDet fria alternativet

Could not update/ODBC error

16 svar · 316 visningar · startad av SannyW

SannyWMedlem sedan jan. 2003438 inlägg
#1

Får ett felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Could not update; currently locked by user 'admin' on machine 'PASADENA'.

/update.asp, line 61

. Det konstiga är att scriptet fungerar lokalt på min dator men inte på servern.

Bifogar koden för update-scriptet, fet markering är line 61

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("db.mdb")

' Define database file type and location
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open Conn

' Prepare the SQL insert command
Kolumn = Request.Querystring("kolumn")
value = Request.Querystring("value")
t = Request.Querystring("t")
team = Request.Querystring("team")
cmdSQLinsert = "UPDATE " & t &" SET " & kolumn &" = " & kolumn & value & " WHERE ID = "& Request.Querystring("ID")

' Execute the SQL insert command
objConn.Execute cmdSQLinsert
'Response.write(cmdSQLinsert)

' Close and clean up
Set objConn = Nothing

set conn1 = Server.CreateObject("ADODB.Connection")
conn1.open Conn

Kolumn = Request.Querystring("kolumn")
value = Request.Querystring("value")
t = Request.Querystring("t")
team = Request.Querystring("team")

IF value = "--1" THEN
	value2 = 1
ELSE
	value2 = -1
END IF

select case kolumn
   case "trantotal" :strUp = "trantotal = trantotal  + "& value2 &"*1 - "& value2 &"*1, poangtotal = poangtotal + "& value2 &"*1"
   case "tranantal" :strUp = "tranantal = tranantal + "& value2 &"*1 - "& value2 &"*1"
   case "poangspel" :strUp = "poangspel = poangspel + "& value2 &"*1 - "& value2 &"*1, poangtotal = poangtotal + "& value2 &"*1"
   case "vunna" : strUp = "matcher = matcher + "& value2 &"*1, poang = poang + "& value2 &"*3"
   case "oavgjorda" : strUp = "matcher = matcher + "& value2 &"*1, poang = poang + "& value2 &"*1"
   case "forlorade" : strUp = "matcher = matcher + "& value2 &"*1"
   case "gjorda" : strUp = "plusminus = plusminus + "& value2 &"*1"
   case "inslappta" : strUp = "plusminus = plusminus - "& value2 &"*1"
   case "plus" : strUp = "plus = plus + "& value2 &"*1 - "& value2 &"*1"
   case "" & team &"matcher" : strUp = "" & team &"matcher = " & team &"matcher + "& value2 &"*1 - "& value2 &"*1"
   case "" & team &"mal" : strUp = "" & team &"mal = " & team &"mal + "& value2 &"*1 - "& value2 &"*1, " & team &"poang = " & team &"poang + "& value2 &"*1"
   case "" & team &"ass" : strUp = "" & team &"ass = " & team &"ass + "& value2 &"*1 - "& value2 &"*1, " & team &"poang = " & team &"poang + "& value2 &"*1"
   case "" & team &"gula" : strUp = "" & team &"gula = " & team &"gula + "& value2 &"*1 - "& value2 &"*1"
   case "" & team &"roda" : strUp = "" & team &"roda = " & team &"roda + "& value2 &"*1 - "& value2 &"*1"
   case "" & team &"plus" : strUp = "" & team &"plus = " & team &"plus + "& value2 &"*1 - "& value2 &"*1"
end select
	

[B]cmdSQLinsert2 = "UPDATE " & t &" SET " & strUp & " WHERE ID = "& Request.Querystring("ID")[/B]
'Response.write(cmdSQLinsert2)
conn1.Execute cmdSQLinsert2
	
	
conn1.Close
set conn1 = nothing

response.redirect(request.servervariables("HTTP_REFERER"))
%>
SannyWMedlem sedan jan. 2003438 inlägg
#2

Kan det bero på att det blir dubbelt "" när jag för in case " & strUp & "?

Tack på förhand.

cyprysMedlem sedan dec. 20003 563 inlägg
#3

Du har inte rättigtheter till databasen.
Kontrollera med webbhotellet om hur du skall göra.

SannyWMedlem sedan jan. 2003438 inlägg
#4

Cyprys: tack för ditt svar. Angående rättigheter till databasen, så skall det inte vara några problem. För jag har ett annan sida som använder samma script och fungerar. (vunna" : strUp = "matcher = matcher )

Vad jag har kommit fram till är att det inte går att göra följande:

trantotal" :strUp = "trantotal = trantotal + "& value2 &"*1 - "& value2 &"*1

Alltså att använda trantotal som case och sedan även som förändrande factor i SQL-satsen.

Varför? Har det riktigt klart för mig, men det är kanske någon som kan förklara det......

Tack på förhand.

OveRRidEMedlem sedan feb. 200112 078 inlägg
#5
[Microsoft][ODBC Microsoft Access Driver] Could not update; currently locked by user 'admin' on machine 'PASADENA'.

Angående rättigheter till databasen, så skall det inte vara några problem. För jag har ett annan sida som använder samma script och fungerar.

Det står ju visserligen i klartext att du inte har rättigheter på databasen.

Vem är 'admin' och vilken är maskinen 'pasadena'? Troligtvis ditt webbhotell.

cyprysMedlem sedan dec. 20003 563 inlägg
#6

Kontrollera Conn.Open-raden gentemot det andra scriptet som funkar "kontrollera!"
Ser det exakt likadant ut och körs det från samma applikation?

/r Dessutom kan du kontrollera att det verkligen är den raden som det handlar om, antagligen inte.
Den du markerat med fetstil är ju bara en uppbyggnad av en sträng. 2 rader längre ner däremot...

/r Vart kom select case in i bilden?

SannyWMedlem sedan jan. 2003438 inlägg
#7

Jag öppnar update med :

<a href="update.asp?ID=<% =RecSet("id") %>&t=<%=Request.Querystring("t")%>&team=<%=Request.Querystring("team")%>&kolumn=<%=Request.Querystring("team")%>matcher&value=-1">

Allt fungerar lokalt på min dator, men bara nedanstående del funkar på servern:

case "vunna"     : strUp = "matcher = matcher + "& value2 &"*1, poang = poang + "& value2 &"*3"
   case "oavgjorda" : strUp = "matcher = matcher + "& value2 &"*1, poang = poang + "& value2 &"*1"
   case "forlorade" : strUp = "matcher = matcher + "& value2 &"*1"
   case "gjorda"    : strUp = "plusminus = plusminus + "& value2 &"*1"
   case "inslappta" : strUp = "plusminus = plusminus - "& value2 &"*1"

Vad som händer är att första sql fungerar och uppdaterar:

cmdSQLinsert = "UPDATE " & t &" SET " & kolumn &" = " & kolumn & value & " WHERE ID = "& Request.Querystring("ID")

Men den andra skriker fel:

cmdSQLinsert2 = "UPDATE " & t &" SET " & strUp & " WHERE ID = "& Request.Querystring("ID")

Den delen som fungerar öppnas på samma sätt som det andra som inte gör det.

Utveckla vad du menar "/r Vart kom select case in i bilden?"

Vad är det jag missar??? Hmmm.........

cyprysMedlem sedan dec. 20003 563 inlägg
#8

Det är bara en av dina case som kommer köras samt den sista sql-satsen, vilken du får fel på.

Den skriker fortfarande om att du inte har rättigheter så frågan är om verkligen är något fel på dina sql-frågor.

Om du använder din response.write där istället för att försöka köra frågan, vad händer då?

SannyWMedlem sedan jan. 2003438 inlägg
#9

Om jag kör response.write får jag följande:

UPDATE spelare SET agula = agula + 1*1 WHERE ID = 8
Response object error 'ASP 0156 : 80004005'

Header Error

/admin/stat/update.asp, line 68

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.

Det där med rättigheter fattar jag inte, hur kan jag bli stoppad av en tabell i access. När samma funkar när jag skickar in informationen för t ex vunna!

Att bara en case kommer att köra vet jag, det beror på vilket Querystring som sänds in i update.

Vet inte om det fram kom riktigt innan, den första sql fungerar korrekt hela tiden. Men den andra fungerar BARA på vunna, oavgjorda, förlorade, mål, insläppta.

SannyWMedlem sedan jan. 2003438 inlägg
#10

Inga fler ideér om varför det inte funkar???

clarkbonesMedlem sedan feb. 20013 023 inlägg
#11

Skriv response.buffer=true högst upp i koden, så blir du av med fel medd:

------------------------------------------
The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
---------------------------------------
Skriv som sagt ut SQL-satsen och se till att den är korrekt.

SannyWMedlem sedan jan. 2003438 inlägg
#12

gjorde som du sa clarkbones:

Följande resultat:
UPDATE spelare SET aroda = aroda + 1*1 - 1*1 WHERE ID = 8

För mig ser detta rätt ut. Hmmmm, fattar bara inte var felet ligger!

Lustigast av allt är fortfarande att det funkar lokalt på min dator!

SannyWMedlem sedan jan. 2003438 inlägg
#13

Jag tackar för all hjälp jag har fått, problemet är INTE löst och jag kan inte förstå varför det inte funkar.

Om det har med ej tillgång till databasen, vilket jag tycker är konstigt då scriptet funkar mot 1 tabell men inte den andra tabellen.

Är det någon som får någon snilleblixt så hör gärna av Er.

Ha det gott!

/r Så att det kommit in lite nya hjärnor här inne. Kanske någon som har någon idé.

SannyWMedlem sedan jan. 2003438 inlägg
#14

Fan detta är sjukt, jag ändrar och ändrar men!!!! Det vill bara inte fungera. Jag har jämnfört de två olika filerna som skickar Request.querystring till update-filen. De är likadana, men trots detta fungerar bara den ena.

Jag kör response.write för att se vad som skrivs ut och det är rätt. Men databasen är låst!

Kan det ha med tabellen i databasen att göra på något sätt, t ex decimalerna? Eller vad som?

Behöver hjälp!!

Microsoft JET Database Engine error '80004005'

Could not update; currently locked.

cyprysMedlem sedan dec. 20003 563 inlägg
#15

Funkar?

' "Byt/lägg till" till detta istället
' Close and clean up
objConn.close
Set objConn = Nothing
conn.close
set conn = nothing
SannyWMedlem sedan jan. 2003438 inlägg
#16

ger mig följande:

Provider error '80020005' 

Type mismatch. 

conn1.Open Conn (FEL)

Samma fel lokalt på min dator. Då funkar inte scriptet där heller.

Provider (0x80020005)
Typblandningsfel.

Av någon anledning hänger jag själv upp mig på att det fungerar att uppdatera tabellen "tabell" och inte tabellen "spelare".

Det har fått mig att undra om det kan bero på tabellen i databasen, men vad som skall vara fel förstår jag inte. Har tittat på databasen och fälten står som tal i båda m.m.

SannyWMedlem sedan jan. 2003438 inlägg
#17

NU FICK JAG det att fungera. Om jag stänger ner första conn och öppnar conn1 med fullständig databas URL.

Kan någon svara mig varför detta behövs, vad är det för skillnad på lokal XP och servern? Hur kan den aggera annorlunda med öppning och stängning. Några frågor som dyker upp!

Tack för all hjälp!

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