Hejsa eksperter... Jeg står med et problem når jeg forsøger at connecte til min access database lokalt. Min connection ser således ud: Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../../db/main.mdb")
Problemet er: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0xa64 Thread 0xba0 DBC 0x1558024 Jet'.
Jeg er nået frem til at det helt sikkert har noget med placeringen af databasen at gøre. Nogle gange virker det rent faktisk, og denne fejl kommer ikke. Hvis jeg flytter databasen til et andet bibliotek er der noget andet der virker (andre tabeller i databasen), meget underligt og irriterende. Jeg kører IIS 5.1, og har læst i andre tråde at der kan være problemer, men kan ikke komme frem til hvad det skulle være. Har forsøgt at genstarte serveren, uden held...
du har enten en gammel .ldb fil liggende (en temporær fil der bliver oprettet når du åbner din database, eller så har du stadig basen åben når du eksekverer dit script. luk din database inden du kører dit script.
du bør også bruge en anden driver. prøv:
Conn.Open = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../../db/main.mdb")
Jeg har skam sørget for at lukke databasen inden jeg åbner siden...
Har også prøvet med den driver der, men så får jeg følgende fejl: "The Microsoft Jet database engine cannot open the file 'c:\inetpub\wwwroot\db\main.mdb'. It is already opened exclusively by another user, or you need permission to view its data."
Hvad permission så dækker over er jeg ikke helt klar over.
hmm .. jeg har haft det samme problem en gang tidligere. aner ikke helt hvad det skyldes, men jeg tog en kopi af min base, slettet den gamle og renamet den nye databasen til hvad den gamle hed og vupti, så fungerte det. :-| ikke særlig pedagogisk svar, men jeg arbejder ikke med access, så det er umiddelbart det eneste jjeg kan komme i tanker om ...
Jeps, har jeg også lige gjort... ser ud til at virke. Plejer heller aldrig at bruge access, men er tvunget til det her pga. webhotel (cliche.dk). Havde egentlig gjort det, selv før jeg lavede denne tråd, men lav svar for point.
Hov var måske lidt for hurtig... Med "Conn.Open = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../../db/main.mdb")" kommer der fejl når jeg prøver at lave queries... Hvad kan det skyldes? Med "Conn.Open = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../../db/main.mdb")" virker det fint.
Får fejl ved alle normale kommandoer... fx: "set rs = conn.execute("update brugere set navn = '" & nytnavn & "' where id = " & session("brugerid"))" tror også den giver fejl ved "select * from..." osv Noget med error in syntax
og du har prøvet at skrive ud din SQL, for at se at den er ok?
SQL = "update brugere set navn ='" & nytnavn & "' where id =" & session("brugerid") & "" Response.Write( "SQL: " & SQL ) Conn.Execute(SQL)
har du prøvet at køre din SQL direkte i access ? er 'id' kolonnen numerisk eller alfa-numerisk ? HVad er den eksakte fejl du får ?
Det er jo umuligt at hjælpe hvis du ikke kommer med noget udfyllende information. Hvad har du tidligere prøvet ? Vi er ikke clairvoyante her inde ;o]
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.