Avatar billede jackez Nybegynder
14. juni 2001 - 10:01 Der er 11 kommentarer og
1 løsning

Exclusive forbindelse til MS SQL Server via ADO ?

Er der ikke en måde hvorpå ma kan oprette en exclusive connection til en MS SQL Server database på samme måde som man kan til en MS Access database ?

Eller en måde hvor man kan aflæse hvilke brugere/antal brugere der er koblet på databasen ?

Jeg ville gerne kunne gøre dette via ADO, men andre teknikker er velkomne bare de kan dette....

Mvh Jakob
Avatar billede pellelil Nybegynder
14. juni 2001 - 10:19 #1
For mig lyder det som om at du vil opnå at der ikke er flere der laver ændringer på samme tid?. I så fald er Transactioner måden at gøre det på.
Avatar billede jackez Nybegynder
14. juni 2001 - 10:23 #2
Jeg vil ikke have at andre bruger læser fra databasen imens jeg foretager mine opdateringer af data.
Avatar billede pellelil Nybegynder
14. juni 2001 - 10:26 #3
Så brug transaktions styring. Andre brugere kan ikke se dine data før disse Commit\'es.
Avatar billede jackez Nybegynder
14. juni 2001 - 12:25 #4
Kan en transaktion håndtere at jeg slette hele indholdet og opretter alle data igen (over 1 GB) ?
Avatar billede pellelil Nybegynder
14. juni 2001 - 12:26 #5
JA !
Avatar billede pellelil Nybegynder
14. juni 2001 - 13:27 #6
Jeg fik lige \"lidt\" bedre tid: Ja din transaction kan sagtens være meget stor. Når du opretter en MS-SQL database angiver du såvel størrelsen for databasen og transaktions-loggen (samt i hvilket omfang de 2 vokser).

MEN: I mine øre lyder det MEGET forkert at du er nødt til at slette HELE indholdet bare for at slette det igen. Nu har du ikke fortalt noget om dit program, men mon ikke det kunne laves smartere !?

Du skal være klar over at hvis en bruger laver ændringer i databasen mens du er ved at slette/oprette DET HELE, så kan din transaktion ikke Commit\'es og du er nødt til at starte HELT forfra.

Generlt skal din transaktion være så lille som overhoved muligt for ikke at stresse systemet unødigt. Jo \"større\" en transaktion er (indeholder mange opdateringer) jo større er chancen for at en bruger har lavet ændringer i de data du er ved at opdatere hvorved tansaktionen ikke kan commites.
Avatar billede jackez Nybegynder
14. juni 2001 - 14:11 #7
Hvor ingen af brugerne ser de nye data førend jeg committer dem ? Og alle de gamle data er tilgængelige for brugerne imens jeg opdaterer ?
Avatar billede pellelil Nybegynder
14. juni 2001 - 14:17 #8
Ja (gætter da jeg Ikke har rodet med ADO/MS-SQL), men det der er vigtigt at du forstår er at du vil IKKE være i stand til at comitte hvis brugeren har lave ændringer MENS du opdatere.

Avatar billede jackez Nybegynder
14. juni 2001 - 14:21 #9
Det er en database der bruges til at lave rapporter udfra. Desværre kan disse ikke trækkes direkte fra hovededatabasen, så det er nødt til at være på denne måde. Brugerne bruger en rapportgenerator til at lave rapporter. Det er meget vigtigt at disse rapporter ikke viser forkerte data (f.eks. ved at halvdelen af data mangler pga. de er ved at blive opdateret).
Hovedeprogrammet starter på planlagte tidspunkter et import program der flytter data mellem de 2 databaser. Oftes kun opdateringer af ændringer men til tider en fuld import af hele databasen.
Sandsynligheden for at der er bruger der er i gang med at generere en rapport når dette sker er ikke særlig stor, men det MÅ BARE IKKE forekomme.
Kan du forstå problemstillingen ?
Avatar billede pellelil Nybegynder
14. juni 2001 - 14:26 #10
Igen må jeg sige at jeg ikke kender ADO/MS-SQL kombinationen da jeg sværger til Interbase (men har tidliger bruger MS-SQL via Delphi\'s DB-LINK). Sålænge dine database programmer kun læser, så burde der ikke være nogle problemer, da din Commit i så fald burde lykkes. Ligeledes er dine (nye) data IKKE tilgængelig overfor brugerne FØR du comitter disse (allesammen på engang).
Avatar billede jackez Nybegynder
27. juni 2001 - 10:11 #11
Du får pointene....tak for diskussionen.
Avatar billede pellelil Nybegynder
27. juni 2001 - 11:10 #12
Virkede det ?
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