Avatar billede crazyreds Nybegynder
04. august 2004 - 16:10 Der er 10 kommentarer

Multiple user access

Hi

I use ASP to display and edit data from my MS SQL DB, many users need to have access to the same data. But only one can have write access to the same records at the time, who do i solve this problem?
The other users should get the records in read only.

Brian Jensen
Avatar billede arne_v Ekspert
04. august 2004 - 16:20 #1
You can lock the data database wise, but it is general considered
bad practice with long lasting database transactions.

So usually this problem is handled by the version pattern.

You add a version column to the table.

get: get all columns including version with SELECT

save: if version < current version in database
        abort
      else
        version = version + 1
        update data with UPDATE

save requires a database transaction, but this is a only spanning a very short
time interval.

You could also add a column inuse and have:

get: if inuse already set
        abort
    else
        set inuse with UPDATE
        get data with SELECT

save: update data with UPDATE

[in this case get in done in a database transction]

The problem with the last one is if someone get but do not save !!

I recommend the version.
Avatar billede arne_v Ekspert
05. august 2004 - 19:57 #2
ok ?
Avatar billede crazyreds Nybegynder
06. august 2004 - 09:55 #3
Hej arne

Løsningen er for så vidt god nok, problemet er:
Jeg har et system hvor brugerne skal udfylde en række data for nogle forskellige ASP sider. Data bliver automatisk gemt og hentet ved skift mellem siderne. Men opstår der en fejl på siden, forbliver disse data låst. Så hvad jeg enligt har brug for er nok:
At være i stand til at se om siden er loadet uden fejl, hvordan kan man se det i ASP?
Avatar billede arne_v Ekspert
06. august 2004 - 21:15 #4
Det er jo netop version patterns store styrke. Data bliver ikke låst. Og det er
ikke et problem, hvis der aldrig bliver opdateret.
Avatar billede arne_v Ekspert
06. august 2004 - 21:16 #5
Umiddelbart synes jeg at det lyder nemmere at gemme de data i session mellem
siderne !
Avatar billede arne_v Ekspert
10. august 2004 - 22:11 #6
Kommet videre ?
Avatar billede crazyreds Nybegynder
12. august 2004 - 08:29 #7
Når du skrive gemme data i sessions mellem sider hvad mener du så med det?
Lige nu gemmer den data fra forgående side og henter data til den nye. Ligesom foregående side blive låst op og den nye side bliver låst. Dette gøres bare ved at sættet en værdi til 1 i DB. Problemet er bare hvis den nye side fejler, så vil den forgående side måske ikke blive lås op. Så skal jeg til at gøre det manuelt.:)
Avatar billede arne_v Ekspert
12. august 2004 - 13:41 #8
At alle data kun gemmes i session indtil sidste side hvor database først opdateres.

Og version pattern løser som sagt netop problemet med det ikke clearede låse
flag fordi der ikke er et låse flag.
Avatar billede arne_v Ekspert
11. september 2004 - 22:06 #9
OK ?
Avatar billede crazyreds Nybegynder
03. november 2004 - 15:24 #10
Hej

Sorry den lange svar tid :).
Det er lige præsic hvad du skriver "The problem with the last one is if someone get but do not save !!" som er mit store problem.

Gemme det i sessions, hmm. Det er ret meget data, fra forskellige sider. Tror ikke den går.
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
Computerworld tilbyder specialiserede kurser i database-management

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