Gå til innhold

[Løst]UPDATE query + på verdier.


Anbefalte innlegg

har et C# program me en textBox en datetimepicker og en save knapp og en update knapp.

 

 

Har en database med

 

ID - Dato - Antallsaker

1 - 2001.01.01 - 100

 

hvordan lage en UPDATE query for og adde feks 2 til 100 slik at end result blir 102

kunne kjørt en

"update tab1 set Anatallsaker = '102' where ID = '1'"

men da må du vite at resultatet blir 102.

 

si at applicasjonen var open på 2 pecer han ene har 100 i textboxen og han andre har 2

 

begge trykker save

først skriver 100

nesteman skriver 2

 

eg vil at disse 2 skal bli updatet til 100 vist det er mulig og lage en slik query....

 

 

ser en annen måte og løse det på i C# ved og laste først det som allerede ligger der i en variabel og plusse på verdien i textboxen så kjøre en Update mot databasen me resultat. Men først ønsker eg og høre om det kan løses enklere me en type update query

Endret av sommy
Lenke til kommentar
Videoannonse
Annonse

La oss si at AntallSaker er satt til 100, og du har to spørringer som skal legge til f.eks 4 og 5. Disse blir kjørt i transaksjoner som blir kjørt samtidig*. Du vil da ha to mulige utfall:

a) først blir verdien satt til 104 i den ene og så til 105 i den andre

b) transaksjon #2 feiler fordi det er skjedd en concurrent update

 

Dette avhenger av hvilket transaksjonsnivå du kjører.

 

*Samtidig betyr her at transaksjon #2 blir startet før transaksjon #1 er committet.

Endret av blackbrrd
Lenke til kommentar
La oss si at AntallSaker er satt til 100, og du har to spørringer som skal legge til f.eks 4 og 5. Disse blir kjørt i transaksjoner som blir kjørt samtidig*. Du vil da ha to mulige utfall:

a) først blir verdien satt til 104 i den ene og så til 105 i den andre

b) transaksjon #2 feiler fordi det er skjedd en concurrent update

 

Dette avhenger av hvilket transaksjonsnivå du kjører.

 

*Samtidig betyr her at transaksjon #2 blir startet før transaksjon #1 er committet.

Feil. Så lenge UPDATE statementet ikke settes til en spesifikk verdi, men det gjøres slik Jonas foreslår, så er det umulig at resultatet av de to transaksjonene gir det resultatet du har i eksempel a)

 

Grunnen er at to transaksjoner ikke kan kjøres samtidig. Den ene kommer alltid etter den andre, og i og med at en Exclusive/Write lock ikke er kompatibel med et Shared/Read lock så vil ikke dette kunne skje. Dermed vil ikke den siste transaksjonen kunne lese verdien av Antallsaker før den første har commited.

 

Men jeg skal være enig i at hvis en utfører oppdateringen ved å først SELECTe og deretter UPDATE så kan en få problemer avhengig av isolasjonsnivået.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...