---
title: "Could not update/ODBC error"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/76639-could-not-update-odbc-error"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "SannyW"
published: "2003-05-11T22:44:14.000Z"
updated: "2003-05-12T22:06:51.000Z"
replies: 16
views: 323
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/76639-could-not-update-odbc-error"
---

# Could not update/ODBC error

## #1 — SannyW, 2003-05-11T22:44Z

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"))
%>
```

Permalänk: https://www.webforum.nu/p/76639

## #2 — SannyW, 2003-05-11T22:48Z

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

Tack på förhand.

Permalänk: https://www.webforum.nu/p/1043435

## #3 — cyprys, 2003-05-12T05:13Z

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

Permalänk: https://www.webforum.nu/p/1043454

## #4 — SannyW, 2003-05-12T07:02Z

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.

Permalänk: https://www.webforum.nu/p/1043484

## #5 — OveRRidE, 2003-05-12T07:12Z

```
[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.

Permalänk: https://www.webforum.nu/p/1043487

## #6 — cyprys, 2003-05-12T07:22Z

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?

Permalänk: https://www.webforum.nu/p/1043489

## #7 — SannyW, 2003-05-12T08:13Z

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

Permalänk: https://www.webforum.nu/p/1043515

## #8 — cyprys, 2003-05-12T08:21Z

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å?

Permalänk: https://www.webforum.nu/p/1043521

## #9 — SannyW, 2003-05-12T08:30Z

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.

Permalänk: https://www.webforum.nu/p/1043527

## #10 — SannyW, 2003-05-12T11:06Z

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

Permalänk: https://www.webforum.nu/p/1043655

## #11 — clarkbones, 2003-05-12T13:21Z

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.

Permalänk: https://www.webforum.nu/p/1043768

## #12 — SannyW, 2003-05-12T13:39Z

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!

Permalänk: https://www.webforum.nu/p/1043790

## #13 — SannyW, 2003-05-12T15:22Z

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é.

Permalänk: https://www.webforum.nu/p/1043888

## #14 — SannyW, 2003-05-12T19:26Z

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.

Permalänk: https://www.webforum.nu/p/1047068

## #15 — cyprys, 2003-05-12T21:47Z

Funkar?

```
' "Byt/lägg till" till detta istället
' Close and clean up
objConn.close
Set objConn = Nothing
conn.close
set conn = nothing
```

Permalänk: https://www.webforum.nu/p/1047321

## #16 — SannyW, 2003-05-12T21:57Z

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.

Permalänk: https://www.webforum.nu/p/1047338

## #17 — SannyW, 2003-05-12T22:06Z

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!

Permalänk: https://www.webforum.nu/p/1047352

---

Tråden på webben: https://www.webforum.nu/amne/asp/76639-could-not-update-odbc-error
