Avatar billede itbjarne Nybegynder
12. oktober 2002 - 17:37 Der er 12 kommentarer

MSAccess synes at arbejde i ekslusiv mode

Hej.
Er ganske ny udi ASP.NET's favre verden, så ville lige spørge her om der er nogen der kan hjælpe med et mindre problem.
Når jeg har en MSAccess db åben i MSAccess (ikke tabel design view) og samtidig foretager en "SELECT * FROM..." i ASP.NET, så for jeg nedenstående fejlmelding - som om ASP forsøger at åbne db'en i exclusive mode. Hvorledes forhindrer jeg dette (problemet er forståeligt nok i ASP koden) ?

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: "" kan ikke bruges, fordi filen allerede er i brug.
Avatar billede jakobandersen Nybegynder
12. oktober 2002 - 17:39 #1
Det er Access der låser filen når den åbner den, du skal lukke databasen i Access før den kan bruger fra ASP/ASP.NET
Avatar billede itbjarne Nybegynder
12. oktober 2002 - 17:49 #2
Desværre tror jeg ikke du har helt ret. Måske min forståelse af hvorledes ASP arbejder ikke svarer til det som jeg er vant til fra Access: Når database filen ikke er åbnet i "udelt" tilstand kan flere brugere samtidig arbejde med db'en samtidig. Her træder table/row lock i funktion hvis flere samtidige brugere forsøger at ændre de samme data i samme tabel. Dette er ikke tilfældet her. Jeg er sikker på at db'en er åbnet i non-exclusive mode. Har lavet en del netværksapplikationer gennem tiderne med Access (frontend/backend) og VB6 men har ikke set dette problem før. Problemet ER i ASP. Jeg kunne lige poppe denne kode ind her som er et login vindue som brugere skal logge ind med. Det er her jeg ser problemet:

Sub Button1_Click(sender As Object, e As EventArgs)
Dim conn As OleDbConnection, gylle as string
Dim cmdEmployees as OleDbCommand
Dim readEmployees as OleDbDataReader

'  Check if login and password field are empty - if yes then error message and exit
if txtlogin.text ="" Or txtpassword.text ="" then lblMessage.text = "Login or password not accepted!":exit sub
conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\WebApplication1\bin\docnav.mdb")
cmdEmployees = New OleDbCommand("Select * from login WHERE loginname = '" + txtlogin.text + "'", conn)
conn.Open()
readEmployees = cmdEmployees.ExecuteReader()
While readEmployees.Read()
    ' Response.Write (readEmployees("loginname") + " " + readEmployees("password"))
    ' Response.Write("<br>")
    if readEmployees("password") <> "" then lblMessage.text = "ok"
End While
conn.close()
End Sub
Avatar billede itbjarne Nybegynder
12. oktober 2002 - 17:51 #3
Probelemt kommer ved conn.Open() kommandoen
Avatar billede itbjarne Nybegynder
12. oktober 2002 - 17:53 #4
Lige en kommentar: Det kan være det SKAL være således, men min tvivl er: Hvad nu hvis mere en een person forsøger at logge ind eller generelt laver en forespørgsel/skrivning til db'en samtidig ? Så er min forståelse at denne fejl ville komme - eller tager jeg fejl ?
Avatar billede jakobandersen Nybegynder
12. oktober 2002 - 18:23 #5
står default open mode til at være Shared i din Access?
Avatar billede itbjarne Nybegynder
12. oktober 2002 - 18:33 #6
Jep.
Menu Funktioner -> indstillinger, vises formen og under advanceret ses standardåbningstilstand som er sat til "med delt adgang".
(Dansk version forstås)...
Avatar billede jakobandersen Nybegynder
12. oktober 2002 - 18:42 #7
Og du er sikker på at IUSR brugeren har skriverettigheder til mappen hvori databasen ligger?
Avatar billede jakobandersen Nybegynder
12. oktober 2002 - 18:42 #8
Undskyld, jeg mener aspnet brugeren og ikke IUSR
Avatar billede itbjarne Nybegynder
12. oktober 2002 - 18:44 #9
Ja. Jeg kan sagtens anvende db'en fra browseren men ikke hvis db'en samtidig er åbnet i MSAccess.
Avatar billede jakobandersen Nybegynder
12. oktober 2002 - 18:50 #10
Men hvis aspnet brugeren ikke har adgang til mappen kan den jo ikke lave lockfiles som er nødvendige når du bruger shared access.
Avatar billede itbjarne Nybegynder
12. oktober 2002 - 20:24 #11
Det har du ret i. Men jeg kan skrive og læse i databasen, så det er ikke problemet. har iøvrigt checket rettighederne og det ser fint ud. Hmm - har også prøvet at have flere browser vinduer åbnet i parallel og prøvet at arbejde med vinduerne samtidig (skrive/læse). Måske har jeg ikke noget problem alligevel ???
Vil lade denne stå åben et stykke tid - kunne være der er en anden der har samme erfaring. Moonduck, du får pointene hvis ikke andet dukker op og hvis det ser ud til fortsat at virke.
Avatar billede jakobandersen Nybegynder
12. oktober 2002 - 21:53 #12
Nej, tag du bare pointene selv hvis der ikke dukker noget op. Jeg har jo ikke kunnet hjælpe.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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