webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Webbutveckling > ASP

ASP Diskussioner om Active Server Pages, med relaterade scriptspråk (klassisk asp).

Svar
 
Trådverktyg Visningsalternativ
Äldre 2002-11-20, 22:45   #1
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
Databaskrupp

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.
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-20, 22:51   #2
Jesper T
Medlem
 
Jesper Ts avatar
 
Registrerad: 2001-11-15
Ort: Järna
Inlägg: 7 050
Lösningar: 182
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.
__________________
Vänligen Jesper
Etisk kommunikation
Jesper T besöker inte forumet just nu   Svara med citat
Äldre 2002-11-20, 22:57   #3
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
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?
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-20, 22:58   #4
Jesper T
Medlem
 
Jesper Ts avatar
 
Registrerad: 2001-11-15
Ort: Järna
Inlägg: 7 050
Lösningar: 182
Citat:
Det har ju något med min ASP-kod att göra.
Posta lite sån då.
__________________
Vänligen Jesper
Etisk kommunikation
Jesper T besöker inte forumet just nu   Svara med citat
Äldre 2002-11-20, 23:22   #5
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
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)

Kod:
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
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-21, 21:53   #6
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
nehe gick inte den gubben
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-21, 21:58   #7
Ekström
Medlem
 
Ekströms avatar
 
Registrerad: 2002-02-01
Inlägg: 1 690
Lösningar: 8
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?
Ekström besöker inte forumet just nu   Svara med citat
Äldre 2002-11-21, 22:20   #8
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
fälten är av typ PM...
det ska väl klara alla sorts datatyper
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-22, 07:27   #9
OveRRidE
Medlem
 
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108
leende

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.
__________________
http://truemaybefalse.blogspot.com - Med en debugger i högsta hugg
OveRRidE besöker inte forumet just nu   Svara med citat
Äldre 2002-11-22, 22:43   #10
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
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)
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-23, 19:12   #11
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
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?
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-24, 11:32   #12
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
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 ?
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-24, 11:59   #13
evesve
Medlem
 
Registrerad: 2001-09-15
Ort: Karlsborg
Inlägg: 167
Lösningar: 0
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.
__________________
http://MLMgames.net
evesve besöker inte forumet just nu   Svara med citat
Äldre 2002-11-24, 15:31   #14
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
klart jag har med recset.close och connect.close..
bara det att de kommer längre ner i koden.
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-27, 22:54   #15
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
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?
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-28, 08:45   #16
OveRRidE
Medlem
 
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108
Citat:
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?
__________________
http://truemaybefalse.blogspot.com - Med en debugger i högsta hugg
OveRRidE besöker inte forumet just nu   Svara med citat
Äldre 2002-11-28, 09:39   #17
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
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
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-28, 09:48   #18
OveRRidE
Medlem
 
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108
leende

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?
__________________
http://truemaybefalse.blogspot.com - Med en debugger i högsta hugg
OveRRidE besöker inte forumet just nu   Svara med citat
Äldre 2002-11-28, 09:52   #19
OveRRidE
Medlem
 
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108
leende

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

Kod:
Connect.Mode = adModeShareExclusive
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("/data/myDb.mdb")
__________________
http://truemaybefalse.blogspot.com - Med en debugger i högsta hugg
OveRRidE besöker inte forumet just nu   Svara med citat
Äldre 2002-11-28, 12:03   #20
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
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:
Kod:
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?
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-28, 12:17   #21
OveRRidE
Medlem
 
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108
leende

Property:n Mode gör att databasen öppnas exklusivt, vilket innebär att om en användare ansluter samtidigt som en annan håller på att t.ex. uppdatera databasen, så får den andra användaren vänta tills den första är klar. Har du många användare kan det bli väntetider, vilket inte är så bra. Därför är det extremt viktigt att stänga connections och recordset:s direkt efter att användaren är klar med den, vilket du gör i koden.

Din connection-sträng ser lite skum ut, testa den här istället:
Kod:
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\datan.mdb") & ";Database Password=password;"
Det är egentligen inte bra att använda exklusiv öppning, testa med ovanstående connectionsträng först, och testa exklusiv öppning (alltså med propertyn Mode) sen, om det inte funkar.
__________________
http://truemaybefalse.blogspot.com - Med en debugger i högsta hugg
OveRRidE besöker inte forumet just nu   Svara med citat
Äldre 2002-11-28, 13:33   #22
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
Din Connect-sträng ger följande felmeddelande:

Microsoft JET Database Engine fel '80004005'

Det går inte att hitta installerbar ISAM.
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-28, 13:54   #23
OveRRidE
Medlem
 
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108
leende

Oj!

Såhär skall det tydligen vara:
Kod:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:Database Password=MyDbPassword;","admin", ""
__________________
http://truemaybefalse.blogspot.com - Med en debugger i högsta hugg
OveRRidE besöker inte forumet just nu   Svara med citat
Äldre 2002-11-28, 14:01   #24
nill
Medlem
 
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0
ser inte den exakt ut som den jag använde från början fast med lite mer krusidull på slutet ?
nill besöker inte forumet just nu   Svara med citat
Äldre 2002-11-28, 14:02   #25
OveRRidE
Medlem
 
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108
Just det där krusidullet på slutet är kanske ganska viktigt?
__________________
http://truemaybefalse.blogspot.com - Med en debugger i högsta hugg
OveRRidE besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Webbutveckling > ASP

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 05:27.


Powered by: vBulletin Version 3.8.6
Copyright © webForum