Avatar billede sbm Nybegynder
05. juni 2001 - 12:32 Der er 7 kommentarer og
2 løsninger

Flere samtidige brugere

Jeg har en hjemmeside der kører asp ned mod en acces deatabase.

Jeg har et problem med flere når flere brugere samtidig går ned mod den samme .mdb fil. Det giver en fejl med \"file already in use\". Det er jo ikke specielt smart. Er det ikke muligt at omgås dette på en elegant måde, eller er det umuligt med acces? Er jeg bare nødt til at skifte til MySQL. (Det vil jeg være ked af, da det vil medføre at jeg også skal skifte webhotel...)

Hvis der er nogen der kommer med en god løsning på problemet, så jeg kan køre flere samtidige brugere på en acces-database, hæver jeg gerne point til eksempelvis 300.
Avatar billede netsrac Praktikant
05. juni 2001 - 12:36 #1
Husker du at lukke din database hvergang med

Conn.close
set conn = nothing

?

www.wservice.dk har indtil for nylig kørt på Access uden problemer, så der kan sagtens være flere samtidige brugere.
Avatar billede dazzeler Nybegynder
05. juni 2001 - 12:38 #2
Hvordan opdatere du din db?
ADO object eller sql?
Avatar billede mwittrock Nybegynder
05. juni 2001 - 18:02 #3
Hvis du forbinder til databasen via en ODBC DSN, bør du måske nok lige undersøge, om du måske skulle have afkrydset \"Exclusive\" ved et uheld.
Avatar billede sbm Nybegynder
05. juni 2001 - 22:22 #4
netsrac >> Ja, jeg lukker databasen hver gang.
mwittrock >> Jeg er ærlig talt ikke sikker på hvad du mener?
dazzeler >> Her er et eksempel. Det er et forum jeg har smidt sammen, og den laver en del \"benarbejde\" og derfor det sted hvor jeg oftest støder på problemet, at filen allerede er i brug, og jeg derfor får en fejlmeddelelse.

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

set conn = server.createobject(\"ADODB.connection\")
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"../db/forum.mdb\")
conn.open strDSN
   
SQL = \"SELECT * FROM Forum WHERE link=0 order by ID desc\"
set RS = conn.execute( SQL )

If RS.eof then
  Response.write\"LigaForum er tomt.\"
else
  do while (not RS.eof)
    ....skriver indlæg ud med tilhørende besvarelser....
    RS.movenext
  loop
End If
RS = nothing
conn.close
set conn = null
Avatar billede sbm Nybegynder
06. juni 2001 - 09:26 #5
Ups. Nu kom jeg hjem, og kunne se kildekoden som den faktisk ser ud.

To korrektioner til ovenstående.

tredjesidste linie:
SET RS = nothing

sidste linie:
set conn = nothing
Avatar billede sbm Nybegynder
12. juni 2001 - 09:46 #6
Er det muligt på nogen måde at få et recordset, og så lukke forbindelsen til databasen, og stadig arbejde videre med det recordset man har fået?

I så fald vil jeg kunne lukke forbindelsen umiddelbart efter at jeg har fyret min SQL af, og ikke vente til jeg har arbejdet mig ned igennem det hele.
Avatar billede mwittrock Nybegynder
12. juni 2001 - 09:54 #7
Du kan gøre følgende, og få et såkaldt disconnected recordset, som netop er et recordset der ikke længere har forbindelse til databasen:

Const adUseClient = 3 \' Kun hvis du ikke i forvejen har inkluderet ADO konstanterne

Set objRS = Server.CreateObject(\"ADODB.Recordset\")
Set objDbConn = Server.CreateObject(\"ADODB.Connection\")

objDbConn.Open dsn \' Eller hvordan du nu åbner forbindelsen
objRS.ActiveConnection = objDbConn
objRS.CursorLocation = adUseClient
objRS.Open \"SELECT .... FROM .... WHERE ....\"
Set objRS.ActiveConnection = Nothing
objDbConn.Close
Avatar billede sbm Nybegynder
12. juni 2001 - 22:07 #8
I det oprindelige spørgsmål
http://www.eksperten.dk/spm/80777
leverede kichian svaret på det jeg bad om, så jeg hiver pointene derover så han kan få dem.

mwittrock >> Tak for dit svar. Jeg lader 50 point blive hængende til dig. Jeg håber det er tilfredsstillende?
Avatar billede mwittrock Nybegynder
12. juni 2001 - 22:16 #9
No problem.
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