Avatar billede bsn Forsker
28. oktober 2024 - 23:11 Der er 7 kommentarer

ASP classic

Har en side kørende, som har en Access database som backend.
Siden har ikke brugerlogin.

Jeg vil gerne, at når en bruger er ved at oprette en post i databasen, skal andre ikke kunne oprette en post samtidig.

Hvordan kan jeg sikre det...???

De bedste hilsener
Bjarne
Avatar billede arne_v Ekspert
Skrevet i går kl. 00:02 #1
Ide - pseudo kode:

x = random number
n = execsql UPDATE lcktbl SET id = x WHERE id = 0
if n = 0 then
      opret post
      execsql  UPDATE lcktbl SET id = 0
else
    write "database i brug"
endif
Avatar billede bsn Forsker
Skrevet i går kl. 08:34 #2
#1
Tak Arne
Er lidt fatsvag her til morgen...:)
Kan du forklare hvad der sker / ideen er...?
dbh
Bjarne
Avatar billede bsn Forsker
Skrevet i går kl. 09:54 #3
#2
Nå, så vågnede jeg helt op...
Det virker fint - tak for hjælpen...
dbh
Bjarne
Avatar billede bsn Forsker
Skrevet i går kl. 13:46 #4
Arhhh ikke helt alligevel...

if n = 0 then
Er det ikke : if n > 0 then
      opret post
      execsql  UPDATE lcktbl SET id = 0
else
    write "database i brug"
endif
Avatar billede arne_v Ekspert
Skrevet i går kl. 14:01 #5
Ups. Jo.
Avatar billede arne_v Ekspert
Skrevet i går kl. 14:02 #6
>0 eller =1.

Testen er om den UPDATE har fundet en række med id=0
Avatar billede arne_v Ekspert
Skrevet i går kl. 14:03 #7
Hvis systemet skal gæres mere robust kan du overveje at gemme tidspunkt også. Det vil gøre det nemmere at lave en timeout i tilfælde af at der sker noget så værdien aldrig bliver sat tilbage til 0.
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