31. januar 2003 - 11:59Der er
9 kommentarer og 1 løsning
Vb+database+flere brugere samtidig
Jeg skal til at lave en database over nogle tegningsnumre samt tilhørende info. Databasen skal tilgås fra et VB-program jeg laver, hvorfra folk skal kunne udtrække altmuligt samt tilføje nye tegningsnumre med tilhørende info.
Jeg har bare et spørgsmål, før jeg går igang. Databasen ligger på et lokalt netværk, og hvad sker der hvis een bruger starter mit program, redigerer i databasen, samtidigt med at en anden har den åben?
Bliver det håndteret automatisk, ved at databasen bliver skrivebeskyttet når den åbnes første gang i VB, og kan det så fanges ved et bestemr Err.Number i VB, eller hwa?
Jeg vil foreslå at bruge SQL Server som backend-database, hvis der mange samtidige brugere på databasen. Så vidt jeg ved har du også mulighed for at køre Transactions i SQL Server, som skulle løse dit problem.
Muligvis en bedre løsning - men jeg mangler stadig at vide hvordan det håndteres / kan håndteres, når man fra flere VB-programmer connecter til samme Access-database samtidigt (flere VB-programmer = muligvis 2-3 samtidigt)
Øhh - hvad sker der her? Det jeg skrev før var, at det godt kan være at SQL server er en bedre løsning, men det giver mig ikke svar på mit oprindelige spørgsmål - hvad der sker, når der er flere PC'ere der har installeret et VB-program, og de samtidigt forsøger at tilgå og evt. redigerer i den samme database...? (Flere PC'ere = 2-3-4 stykker)
Men hvis to brugere forsøger at skrive til den samme record samtidigt - hvad sker der så - kommer der en fejl med et spscifikt Err.Number, som jeg kan fange?
Jeg er ikke 100% sikker på hvordan SQL server håndterer dette og om det kan fanges i VB, men jeg vil forvente at den kun opdaterer de felter der er ændret og den bruger der opdaterer sidst får ret. Hvis du skal lave noget der er 100% skudsikkert skal det formentlig laves transaktionsorienteret. (Mit tidligere svar skulle nok mere opfattes som en kommentar.)
Synes godt om
Slettet bruger
01. februar 2003 - 10:46#7
Ved 2-4 samtidige brugere på en Access-database kan jeg ikke se at der skulle opstå problemer. Selvfølgelig kan der ske det at brugere ikke har de nyeste data fra databasen i programmet, men det er jo ikke noget der afhænger af, hvilken database du benytter.
Flere har mulighed for at tilgå databasen samtidigt fra hver deres VB-program. Det er ret usmart, hvis der sidder to mennesker og bruger 3 timer på at udfylde en masse i databasen, hvorefter den muligvis kun opdaterer for den af brugerene. Derfor:
Kan man så snart databasen er i brug af bruger1, og bruger2 forsøger at rette i den, så meddele bruger2, at databasen PT er skrivebeskyttet, fordi bruger1 redigerer i den, og at bruger2 derfor kun kan åbne den med læseadgang. Hvis ja, hvordan tjekker man så fra VB, om databasen allerede er i brug. Ved at forsøge at skrive til den, og få en fejlkode med et bestemt nummer. Eller kan man på anden måde tjekke, at databasen ikke er åben af andre programmer?
Jeg har lige arbejdet med noget i den stil, og valgte simpelthen at tilføje et true/false felt, for selv at håndtere, om den givne record er låst eller ej.
På den måde kan jeg egenhændigt styre hvornår der kan editeres i en record. (Det er skønt at være diktator!)
Jeg kommer vist ikke nærmere et svar - tak for hjælpen!
Synes godt om
Ny brugerNybegynder
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.