Avatar billede kotelet Nybegynder
13. august 2001 - 21:12 Der er 9 kommentarer og
1 løsning

Multi-user

Hej

Jeg har hørt at man kan sætte sin acces database til at være en slags \'multi-user\' database ... dvs. så flere kan bruge den ad gangen ... Er der nogen der ved helt præcis hvordan?
Avatar billede martens Guru
13. august 2001 - 21:35 #1
Det er rigtigt.
Men der er flere måder at gøre dette på.
1. Som almindelig \"flad\" database på en filserver
2. med en workgroupfil, der indeholder brugere samt grupper, der må benytte databasen.

Jeg har selv lavet en \"forholdsvis\" stor database, som bliver benyttet på mit arbejde, til håndtering af hard- og software samt fejlmeldinger m.m.

Her er det en stor hjælp at brugerne er defineret, da det sparer dem for en masse indtastning af e-mailadresser fulde navn etc.
Desuden kan jeg også trace, hvem der gør hvad hvornår (guf for DB-admin)

mvh martens

-
Ønskes yderliger info... SKRIV !

Avatar billede kotelet Nybegynder
13. august 2001 - 21:42 #2
Sagen er, at jeg vil bruge databasen på nettet. Grunden til at den skal være multiuser er, at jeg forventer mange besøgende ad gangen på hjemmesiden ...

Databasen indeholder en enkelt tabel og en enkelt formular. Men meget data.

Jeg har Acces 2000 kan du fortælle mig hvordan jeg sætter databasen til at være multiuser.

Please help me :-)
Avatar billede kotelet Nybegynder
13. august 2001 - 21:43 #3
Jeg ønsker ikke at lave en workgroup som du forklarer, da alle på nettet skal kunne have adgang til databasen.
Avatar billede martens Guru
13. august 2001 - 22:58 #4
Okay - Hjemmeside, så er sagen en ganske anden

hvad er mange ?
altå på én gang (mere end 255 ?)
14. august 2001 - 08:51 #5
Du skal som sådan ikke gøre noget i Access, for at den fungere som multi-user-database. Du kan altid åbne en Access-database flere gange (med mindre én af brugerne har åbnet den eksklusivt - men det kræver en særlig parameter).
I virkeligheden er det den applikation (i dette tilfælde dit website) som skal/kan optimeres til at åbne databasen så kort tid som muligt (jo længere tid, der er en forbindelse til databasen, jo større bliver belastningen og jo langsommere vil systemet virke)
Hvis du ikke har behov for at skrive i databasen fra websitet, bør du kun åbne tabellen skrivebeskyttet (snapshot), da det er det hurtigste.
Endelig er det vigtigt at din tabel er indekseret korrekt. Hvis der ingen index\'er er, vil det formentlig køre langsommere. Derfor; index på de felter, som du foretager søgning eller sortering på.

Hvis du oplever performance-problemer alligevel, så er der ikke så meget andet at gøre end at upsize databasen til f.eks. SQL server eller tilsvarende.

/Thomas
Avatar billede kotelet Nybegynder
14. august 2001 - 14:42 #6
Thomas Jepsen>
Tak tak .. fine ord ord fint svar ... Nu mangler blot def. på \"snapshot\" og \"indexering på felter\"...

Martens>
Undskyld misforståelsen, jeg mente en hjemmeside-acces-database. Men ja .. du kan godt regne med at der bliver under 255 users ad gangen :-)


/Kotelet
14. august 2001 - 14:52 #7
Kotelet->

Snapshot svarer til at åbne en tabel skrivebeskyttet. Hvis du selv skriver din asp, kan du selv bestemme hvordan du skal åbne en forbindelse til en database - jeg ved ikke hvilke muligheder du har, hvis du blot benytter Frontpage eller lign.

Indexering af felter: Når du befinder dig i tabeldesign, har du for hvert felt en feltegenskab, som hedder \"indeksering\", hvor du kan vælge noget med \"Ja, dubletter tillades\", \"ja, ingen dubletter\" eller \"Nej\".
For hvert felt definere man så om der skal være et index på eller ej. Index\'er er med til at få søgninger og sorteringer til at gå meget hurtigere. Men alt har en pris: index\'er for opdateringer til at gå langsommere. Derfor gælder det kun om at sætte index på de felter, som man ved skal bruges til søgning eller sortering. Det vil typisk sige ID-felter, telefonnr, Navn, cprnr osv.

/Thomas
Avatar billede kotelet Nybegynder
14. august 2001 - 14:54 #8
Thomas Jepsen>>>

Tak tak tak ....  Hvad er SQL-stringen til at lave snapshot connection?
14. august 2001 - 16:03 #9
Hmm, nu er vi ovre i asp-syntaks, som jeg personligt ikke aner en bjælde om.  Men da syntaksen faktisk minder meget om VB, så må det se således ud:

Dim rs
Dim SQLStr
set rs= Server.CreateObject(\"ADODB.recordset\")
SQLStr= \"SELECT * From Tabel\"
rs.Open SQLStr, strConn, adopenstatic

adopenstatic angiver at det er et snapshot.

/Thomas
14. august 2001 - 16:06 #10
(...rettelse)

Jeg manglede lige at angive StrConn (connection\'en), som peger på en DNS, som du skal have liggende på serveren (men det har du formentlig allerede)

Dim rs
Dim SQLStr
Dim StrConn
StrConn = \"DSN=Dnsnavn;UID=sa;pwd=tja\"
set rs= Server.CreateObject(\"ADODB.recordset\")
SQLStr= \"SELECT * From Tabel\"
rs.Open SQLStr, strConn, adopenstatic
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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