![]() |
|
|
|||||||
| ASP Diskussioner om Active Server Pages, med relaterade scriptspråk (klassisk asp). |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
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. |
|
|
|
|
|
#2 |
|
Medlem
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. |
|
|
|
|
|
#3 |
|
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? |
|
|
|
|
|
#4 | |
|
Medlem
Registrerad: 2001-11-15
Ort: Järna
Inlägg: 7 050
Lösningar: 182 |
Citat:
|
|
|
|
|
|
|
#5 |
|
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
|
|
|
|
|
|
#6 |
|
Medlem
Registrerad: 2001-10-12
Ort: Hässleholm
Inlägg: 387
Lösningar: 0 |
nehe gick inte den gubben
|
|
|
|
|
|
#7 |
|
Medlem
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? |
|
|
|
|
|
#8 |
|
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 |
|
|
|
|
|
#9 |
|
Medlem
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108 |
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 |
|
|
|
|
|
#10 |
|
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) |
|
|
|
|
|
#11 |
|
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? |
|
|
|
|
|
#12 |
|
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 ? |
|
|
|
|
|
#13 |
|
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 |
|
|
|
|
|
#14 |
|
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. |
|
|
|
|
|
#15 |
|
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? |
|
|
|
|
|
#16 | |
|
Medlem
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108 |
Citat:
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 |
|
|
|
|
|
|
#17 |
|
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
|
|
|
|
|
|
#18 |
|
Medlem
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108 |
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 |
|
|
|
|
|
#19 |
|
Medlem
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108 |
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 |
|
|
|
|
|
#20 |
|
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;"
och hur går jag tillbaka till vanlig öppningen sen? |
|
|
|
|
|
#21 |
|
Medlem
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108 |
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;"
__________________
http://truemaybefalse.blogspot.com - Med en debugger i högsta hugg |
|
|
|
|
|
#22 |
|
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. |
|
|
|
|
|
#23 |
|
Medlem
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108 |
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 |
|
|
|
|
|
#24 |
|
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
?
|
|
|
|
|
|
#25 |
|
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 |
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|