Just nu i M3-nätverket
Gå till innehåll

Konstigt fel


Dahlgren

Rekommendera Poster

Hej!

 

Jag har råkat ut för ett konstigt fel. Jag har en sida där jag hämtar poster från en Access-databas, detta fungerar bra. Det lustiga kommer om man uppdaterar sidan några upprepade gånger då kommer följande felmeddelande:

 

 

Microsoft VBScript runtime error '800a01fb'

 

An exception occurred: 'Open'

 

main.asp, line 60

 

 

Line 59-60 är dessa:

sql = "SELECT TOP 20 * FROM tabell ORDER BY ID DESC"

objRS.Open sql, objConn, adOpenStatic, adLockOptimistic

 

 

Felet uppstod i samband med att jag bytte webbhotell. Det lustiga med felet är ju att det bara kommer ibland och blir mer frekvent ju mer man uppdaterar sidan (klickar på uppdatera alltså).

 

Något anmärkningsvärd är också att det skapas en fil i mappen på servern där databasen ligger som heter databasen.ldb, ikonen för denna fil ser ut ungevär som en Access-databas bara att det är ett litet hänglås på den. Den här extra filen kommer alltid när det blir fel. Om det inte är fel, då är inte filen där.

 

Men varför fungerar det ibland och ibland inte? Jag blir galen på detta felet, de på webbhotellet vet inte heller.

 

Är det någon här som vet vad det kan vara?

 

Tack på förhand.

 

Mvh

 

[inlägget ändrat 2003-02-28 19:20:56 av Gren]

Länk till kommentar
Dela på andra webbplatser

.ldb filen är en låsning som Access använder sig av för att förhindra ändring av data av flera användare, den dyker alltid upp men kan bli kvar om något fel sker.

 

I ditt fall skulle jag kolla upp om alla scripts du kör verkligen stänger alla databaskopplingar ordentligt.

 

Kör en "komprimera och reparera databas" också under verktyg > databasverktyg i Access, men ta en backup kopia först.

 

 

Länk till kommentar
Dela på andra webbplatser

Alla databaskopplingar stängs. Ska testa det andra du talade om snart. Något anmärkningsvärt i nuläget är att ldb-filen har ökat i storlek, man kan ju undra varför.

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Tänk på att stänga både recordsets och connections när du är klar med att läsa eller uppdatera informationen. Använd endast det som krävs för att öppna databasen, e g adLockReadOnly för endast läsning av poster eller t ex adLockOptimistic för att uppdatera poster. adOpenForwardOnly kan vara bra om du endast kör "rs.MoveNext". Det skulle även vara bra om du skickade med källkoden, så att man kan kolla på funktionen i fråga.

 

Ett problem kan även vara att webbhotellet kör en annan drivrutin för access, som ingår i MDAC (Microsoft Data Access Components).

 

/Jimmy

 

 

Länk till kommentar
Dela på andra webbplatser

Hej dotgif! Jag stänger recordset också. Men det här med adLockReadOnly osv. har jag aldrig tänkt på. Har tagit för vana att bara skriva: adOpenStatic och adLockOptimistic utan att tänka på vad de egentligen gör.

 

Hursomhelst tror jag väl inte att det kan vara det som orsakar problemen eller?

 

Jag tänkte testa qwerty99s idé om att "komprimera och reparera databasen" men lyckas inte att ersätta min befintliga databas på webbhotellet med den "reparerade" eftersom det ligger en dum ldb-fil där intill min databas vilket i sin tur gör att jag förbjuds att ändra eller avlägsna databasen. Vet inte hur jag ska få bort ldb-grejen.

 

Länk till kommentar
Dela på andra webbplatser

Vad använder du för connection sträng förresten ? Om du har några stenåldersvarianter som Driver={Microsoft Access Driver (*.mdb)} ... ta bort dem och ersätt med en sådan här:

 

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" _
& Server.MapPath("sökväg\db.mdb")

 

Detta är mer effektivt eftersom det skippar ett lager.

 

[inlägget ändrat 2003-02-28 22:11:27 av qwerty99]

Länk till kommentar
Dela på andra webbplatser

Det var visst ett tag sen jag var här, men jag låter inlägget vara kvar ;).

 

--------------------------------

 

Hej!

 

Problemet du kan råka ut med om du använder annat änd adLockReadOnly, är att det kan läggas en lock på databasen, så fort någon bara kollar på en sida som läser in posten (stänger man allt skall det vara grönt). Vad det gäller ldb filen, så är det troligtvis så att den är låst. Tror inte att webbhotellet har lust att boota om servern, så du kan ju alltid prova att skapa en undermapp och flytta filen dit. Alternativt byt bara namnet på den reparerade filen och använd den i stället.

 

/Jimmy

 

 

[inlägget ändrat 2003-03-06 18:21:05 av dotgif]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...