webForumDet fria alternativet
Logga in / Bli medlem

Cursortype

ASP

4 svar · 189 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Trådstart#1

Hej

Vilken Coursortype ska jag använda om jag vill att endast en ska kunna ändra i posten. Det ska givetvis inte hindra folk från att titta på den.

Medlem sedan dec. 200012 464 inlägg
#2

Jag förstår inte varför du blandar in en cursor när du skall göra update. Om du vill förhindra att din uppdatering inte baseras på felaktigt data så kan du ta med alla gamla kolumnvärden i where i din update. Om ingen post uppdateras så vet du att någon annan har gjort en update baserat på samma värden som i din läsning.

Medlem sedan jan. 20013 406 inlägg
#3

Om två personer skulle ändra i samma post.

Jag vill att endast en person ska kunna arbeta med en post.

Medlem sedan dec. 200012 464 inlägg
#4

Du vill alltså förhindra denna typ av problem:

A läser en post

B läser samma post

A uppdaterar posten

B uppdaterar posten

A's uppdatering har alltså tappats bort. Det finns i princip två metoder att hantera detta.

Om du vill att bara en person skall kunna arbeta med en viss post så måste du ha någon form av låsning, dvs i samband med läsningen så sätter man en markering så att om någon annan vill bearbeta denna post så får denne bara läsa den. När den första pesonen har gjort sin update så släpps markeringen.

Det går inte att hantera den typen av låsningar med hjälp av en cursor i en Webapplikation eftersom läsningen och uppdateringen sker i olika sessioner. Om du vill ha den typ av låsning så måste du implementera den själv.

Det är nästan ingen som gör detta eftersom det finns så många felsituationer som man måste hantera.

Det man brukar göra istället är att använda sig av en optimistisk metod, man kontrollerar i samband med uppdateringen att ingen annan har förändrat de data som man försöker uppdater under den tid som gått sedan läsningen skedde. Det gör man med den teknik som jag beskrev i mitt förra inlägg.

Medlem sedan jan. 20013 406 inlägg
#5

Ok tack!

Jag ska fundera lite mer kring detta imorgon och åtekommer då hur jag ska göra. Men det låter nog bäst det som du beskrev i ditt förra inlägg.

263 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)