24. september 2002 - 13:59Der er
12 kommentarer og 1 løsning
Tabeller i Access i et netværk
En .mdb eller .mde applikation ligger på et fælles drev i et netværk og denne applikation indeholder fx. Table1 og Form1, der modificerer Table1. Hvad sker der, når to eller flere brugere har Form1 åben - bliver der 'taget en kopi' af applikationen til hver enkelt bruger, således at tabeloperationer i Table1 ikke koliderer, mens brugeren har applikationen åben? Hvad sker der med Table1, når de forskellige brugere lukker deres applikation?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det er jo det smarte. To brugere kan sidde med hver deres kopi af en form og opdatere på forskellige records i samme tabel samtidigt. (De kan dog ikke rette i samme record samtidigt.) Lidt afhængigt af, hvilken slags recordset man har taget ud til brugen, vil han kunne se, når en anden bruger sletter en record. Han vil dog senest opdage det, når han forsøger at tilgå netop denne record.
Jeg har haft 20-30 brugere på samme access applikation. Da Access er en filbasseret database, er det smart, at have tabellerne i en fil og forms og alt det andet i en anden fil. Der er dog fælder ved den slags realtidsprogrammering med flere brugere. Det kræver, at man bygger nogle semaphorer og lader være med at bruge en tabel til f.eks. mellemregninger (med mindre hver bruger får tildelt sin egen tabel).
Det er faktisk lige den situation, jeg vil lande i: en fil til tabeller og en anden med det øvrige. Har du en henvisning til, hvordan man konkret bygger semaphorer?
-> Moses Det er jo en af de ting der er rigtig smart ved at have data i en fil og applikation i en anden. Man har mulighed for at lave alverdens mellemregninger og sammenligninger ved at lave lokale tabeller = tabeller der kun er tilgængelig for den enkelte bruger. Rimelig 'smart' og brugbart.
Semaphorer er logik for burhøns - så er det bare en skam, at ingen af os her er burhøns og at burhøns ikke kan programmere ;-)
Nej - pjat. Det er logiske overvejelser over, hvilke ting, der kan ske, når to eller flere brugere er igang med de samme data. En semaphor er såmænd blot en subrutine (eller funktion), som man skal igennem, for at kunne komme til disse data. Subrutinen sørger så for at holde styr på, hvem der er igang med hvad - og så junglerer den rundt med brugerne, så de alle får, hvad de vil have - bare ikke samtidigt.
>>> hugo Det er rigtigt, men jeg har oftest brug for, at også den fil med forms osv. ligger centralt og er ens for alle brugerne. Blandt andet fordi ændringer kun skal laves ét sted. Eksempelcis, så er dele af access programmet f.eks. til en programadministrator, som styrer slagets gang og kan ændre på såvel parametre, der ligger i tabelfilen men også i forms, der så også helst skal ligge centralt. Hvis man vil bruge lokale tabeller, så kan man jo bare lade programmet lave endnu en access fil (måske midlertidigt for hver opstart), som så kan indeholde lokale parametre.
>>> Moses Det 'problem' klarer jeg ved at jeg sørger for at den fil brugerne kører ligger på deres 'homedir' ( i vores tilfælde H: ) Den fil jeg laver mine rettelser i har jeg så til at ligge et andet sted og hver nat har jeg så filserveren til at fyre et script af der opdaterer applikationen hos alle brugerne. Hvis det så skulle blive nødvendigt med en opdatering midt på dagen, har jeg mulighed for at sætte et flag i en setup tabel, som mine apps læser med jævne mellemrum og hvis den er sat, lukkes applikationen automatisk ned og kun en der har SYSOP rettigheder kan åbne den og rette flaget når der er kørt en manuel opdatering. Alt dette lyder måske besværligt, men når proceduren er implementeret fungerer det rigtigt godt. Personligt har jeg meget dårlige erfaringer med at der er flere der har den samme frontend åbnet. Derfor denne procedure.
Det må jeg sige er en "overdrevet" stor omstændelig procedure. Jeg har aldrig haft problemer med at mange (20-30 brugere) benytter samme frontend på en gang. Der er ikke ret stor belastning på filen, der jo kun skal levere en form eller et modul engang imellem - selvom brugeren vælter rundt i tonsvis af data !!
Alt dette har gjort mig meget klogere på, hvordan Access opfører sig i et netværk. Jeg vil bruge en løsning, hvor hver bruger åbner en tabel med originalnavnet + netinitialer. Mange tak for hjælpen!
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.