---
title: "Databaskrupp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/59813-databaskrupp"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "nill"
published: "2002-11-20T22:45:08.000Z"
updated: "2002-12-04T16:45:45.000Z"
replies: 33
views: 1475
page: 1
pages: 2
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/59813-databaskrupp"
---

# Databaskrupp

_Sida 1 av 2._

## #1 — nill, 2002-11-20T22:45Z

Jag undrar vad det kan vara för fel på min kod när den gör så att min access-databas får följande symptom.

Jag laddar först ner den från webhotellet till min dator för att inspektera den.
Går in i tabellen users och scrollar till fältet relationer där det på vissa poster nu står #Fel. Då får jag upp en varningsruta där det står:

"Microsft Jet-databasmotorn avbröt uppdateringen eftersom du försökte att ändra data samtidigt som en annan användare"

Jag tar Databasverktyg -\> Komprimera och reparera databas.
Nu har det skapats en ny tabell som heter MSysCompactError. När jag går in på den är där en massa poster (4 kolumner) ex:

ErrorCode\|ErrorDescription\|ErrorRecid\|ErrorTable
\-1661\|Det går inte att hitta fältet 'Description'\|\|users

Går in och kollar i users på relationer och istället för #Fel står där nu bara ##########

Vad är detta för knepigt fel och hur fixar jag det?
Det har ju något med min ASP-kod att göra.

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

## #2 — Jesper T, 2002-11-20T22:51Z

Detta: "Microsft Jet-databasmotorn avbröt uppdateringen eftersom du försökte att ändra data samtidigt som en annan användare" 
Brukar bero på att du har access öppet samtidigt som du försöker göra andra grejjor, du måste stänga ner det först.
Det andra har jag ingen aning om.

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

## #3 — nill, 2002-11-20T22:57Z

Nej jag gör inget annat med databasen vad jag vet. Om inte IIS tjuvkikar i den eller nått.

Någon måste ju känna till felet?

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

## #4 — Jesper T, 2002-11-20T22:58Z

> Det har ju något med min ASP-kod att göra.

 
Posta lite sån då. ;)

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

## #5 — nill, 2002-11-20T23:22Z

tror inte det hjälper men visst.  Tror man måste utgå från felen i Access. 
Men jag håller tummarna. Här kommer koden för när jag lagrar information i kolumnen relationer (där det står #Fel och ####### ibland)

```
VarDammit = "SELECT bjuden FROM fester WHERE festhos = " & Request.QueryString("ID")
RecSet.Open VarDammit, Connect, 3, 3
	Dim Festfolk, Relationer
	Festfolk = RecSet.GetRows()
RecSet.Close

For i = 0 To UBound(Festfolk, 2) ' Loopar från 0 till antal festfolk
	
	VarDammit = "SELECT relationer FROM users WHERE ID = " & FestFolk(0, i)
	RecSet.Open VarDammit, Connect, 3, 3

	If Not RecSet.EOF Then
			If isNull(RecSet("relationer")) Then
				Relationer = ""
			Else
				Relationer = RecSet("relationer")
			End If
		
		RecSet.Close
		
		If Instr(Relationer, Session("userID") & ",") = 0 And cInt(FestFolk(0, i)) <> cInt(Session("userID")) Or Relationer = "" And cInt(FestFolk(0, i)) <> cInt(Session("userID")) Then 'Om inte redan känner
			
			
			VarDammit = "UPDATE users SET relationer = relationer & '" & Session("userID") & ",' WHERE ID = " & FestFolk(0, i)
			Connect.Execute VarDammit,,128

			VarDammit = "UPDATE users SET relationer = relationer & '" &  FestFolk(0, i) & ",' WHERE ID = " & Session("userID")
			Connect.Execute VarDammit,,128
			
				

		End If
	
	Else
		RecSet.Close
	End If
	

Next
```

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

## #6 — nill, 2002-11-21T21:53Z

nehe gick inte den gubben :(

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

## #7 — Ekström, 2002-11-21T21:58Z

Gissar på att datatyperna är konstigt inställda. Känner igen dessa: ########, från när man satt fel datatyp på fält i Excel.

Tror du att det kan vara någon sån form av kikhosta?

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

## #8 — nill, 2002-11-21T22:20Z

fälten är av typ PM...
det ska väl klara alla sorts datatyper

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

## #9 — OveRRidE, 2002-11-22T07:27Z

Hrm. Det har väl blivit något korrupt i din databas.

1\. Exportera hela databasen (alla tabeller var för sig) till textfiler.
2\. Kolla i textfilerna ifall det är nåt konstigt i dem.
3\. Skapa en nya access-databas.
4\. Importera den gamla datan.
5\. Testa.

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

## #10 — nill, 2002-11-22T22:43Z

testade...  men efter några timmars användning får jag samma fel på den nya.

Fler idéer?     (är konstigt att ingen annan haft liknande fel)

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

## #11 — nill, 2002-11-23T19:12Z

Nehepp..

Är det någon som vet var jag kan söka hjälp med mitt problem?    Någon eller något jag kan få support hos som kan sånt här?

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

## #12 — nill, 2002-11-24T11:32Z

jag har fått lite mer information. Tydligen kan detta ha med saken att göra:
"Error Description = The Microsoft Jet Database engine stopped the process
because you and another user are attempting to change the same data at the
same time"

Det är väl ganska vanligt om man använder ASP att flera användare försöker ändra data samtidigt.  Det borde väl inte generera fel....
finns det något sätt att hindra det med vbscript/sql ?

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

## #13 — evesve, 2002-11-24T11:59Z

Har du med Connect.Close efter RecSet.Close för att stänga ner kopplingen helt?
Annars tror jag att felet ligger mer i Access än i ASP.

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

## #14 — nill, 2002-11-24T15:31Z

klart jag har med  recset.close  och  connect.close.. 
bara det att de kommer längre ner i koden.

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

## #15 — nill, 2002-11-27T22:54Z

En ny idé:   Vi antar att det handlar om att för många använder databasen samtidigt. Att det är det felet beror på.

Hjälper det då om jag delar upp tabellerna i olika databaser?

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

## #16 — OveRRidE, 2002-11-28T08:45Z

> Hjälper det då om jag delar upp tabellerna i olika databaser?

Detta är det sista du skall göra, håll dig till en databas. 

Du säger att felet uppstår igen efter ett par timmars användning.. vilken kod är det som körs under denna tid?

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

## #17 — nill, 2002-11-28T09:39Z

T.ex den koden jag postat några inlägg tidigare..  

Det är den som skriver till krångelfältet (relalationer) i huvudsak. Skulle vara evigt tacksam om någon kom på någon simpel lösning till mitt problem. 

Men när man inte fått någon bra lösning på flera veckor börjar man tänka på mindre bra lösning och om felet då beror på att många skriver och ändrar till databasen samtidigt borde väl flera databaser hjälpa?  Det verkar logiskt :)

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

## #18 — OveRRidE, 2002-11-28T09:48Z

Att skapa flera databaser till samma data är inte ett alternativ som inte får yttras högt i detta forum. ;)

1\. Du kan inte göra JOIN:s mellan tabeller.
2\. Du måste öppna flera connection-objekt. Prestandaförlust.
3\. Du kommer få ett jädrans strul om du skall jämföra, iterera eller ändra data som ligger i separerade databaser. 
4\. Det är programmeringsmässigt sett fel.

Finns det någon .ldb-fil i samma mapp som databasen? Vilka användare har rätt att läsa/ändra databasen? Vilken drivrutin använder du när du öppnar en koppling mot databasen, hur ser din connection-sträng ut?

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

## #19 — OveRRidE, 2002-11-28T09:52Z

Hrm. Funderade lite på hur det skulle påverka om du öppnar databasen exklusivt, alltså en användare åt gången. Du får nog ett par rejäla väntetider för användare som placeras i kö, men det kan fungera..

```
[red]Connect.Mode = adModeShareExclusive[/red]
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("/data/myDb.mdb")
```

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

## #20 — nill, 2002-11-28T12:03Z

en ldb-fil ser jag ibland men den försvinner lika fort när jag sen uppdaterar vyn.
Rätt att läsa/ändra databasen, huh?  databasen ligger på loopia webhotell är det enda jag vet.

min Connect-sträng:

```
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\datan.mdb") & ";Jet OLEDB:Database Password=xx;"
```

Vad blir följden av att öppna den exklusivt?  får de andra ett felmeddelande då eller?
och hur går jag tillbaka till vanlig öppningen sen?

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/59813-databaskrupp  
Nästa sida: https://www.webforum.nu/amne/asp/59813-databaskrupp/page2.md
