Avatar billede parity Nybegynder
06. april 2004 - 17:04 Der er 10 kommentarer

Access db connection

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

Håber i kan hjælpe mig.
Avatar billede nute Nybegynder
06. april 2004 - 17:09 #1
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")
Avatar billede parity Nybegynder
06. april 2004 - 19:25 #2
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.
Avatar billede nute Nybegynder
06. april 2004 - 19:42 #3
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 ...
Avatar billede parity Nybegynder
06. april 2004 - 19:45 #4
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.
Avatar billede parity Nybegynder
06. april 2004 - 19:58 #5
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.
Avatar billede nute Nybegynder
06. april 2004 - 21:41 #6
hvilken fejl får du ? hvordan åbner du dit recordset ?

jeg bruger selv den samme connectionstring på cliche.
Avatar billede parity Nybegynder
06. april 2004 - 23:20 #7
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
Avatar billede nute Nybegynder
07. april 2004 - 09:01 #8
"tror også den giver fejl" ?? kan du ikke prøve at se om det fejler, så man ikke sidder og prøver at løse problemer ud ud fra antagelser ?
Avatar billede phineas_phreak Nybegynder
07. april 2004 - 10:42 #9
SQL = "update brugere set navn ='" & nytnavn & "' where id =" & session("brugerid") & ""
Conn.Execute(SQL)
Avatar billede nute Nybegynder
07. april 2004 - 10:52 #10
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]
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Politiets Efterretningstjeneste

Fullstack softwareudvikler i PET

Riskpoint A/S (Riskpoint Solutions Limited)

IT Business Analyst

Politiets Efterretningstjeneste

Teknisk IT-sikkerhedsspecialist i PET