09. september 2005 - 13:32Der er
1 kommentar og 1 løsning
Updatering af dataset fra database
Jeg har et dataset jeg fylder med data fra en stored procedure med joinet data. Hver 30 sekund vil jeg gerne have opdateret de data i tilfælde af andre brugere har ændret i data på databasen. Men der er jo ingen grund til at hente alt data hver gang, hvis f.eks. der ingen ændringer er sket, eller kun enkelte rækker er ændret. Hvordan løser jeg dette problem på bedste måde?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
For at du kan få din ide til at virke, skal første udtræk være et total udtræk, f.eks. når en bruger første gang skal se data, briver vedkommende nødt til at hente alle data, der er jo ok....
I databasen gemmes tidspunktet for dette total udtræk kaldet "total_ts".
De data som brugeren får fra databasen skal indeholde et timestamp, f.eks. en ekstra kolonne der hedder "aendre_ts". Denne kolonne beskriver hvornår der er blevet ændret i data rækken.
Din stored procedure som kører hvert 30. sekund, skal ligene dette:
select * from minTabel where aendrs_ts > total_ts;
updata minTidsTabel total_ts = DataTime.Now;
Dvs. du får kun de rækker tilbage som er ændre siden du lavede dit total udtræk. Du skal huske at opdatere "total_ts" efter hvert gennemført udtræk, for ellers ville du jo få flere og flere ændringer.
Ideen er der takker for dit indslag. Det eneste problem er rækker også kan være slettet:D Men meget rart at høre andres ideer så dit svar er accepteret. Jeg tror den "korrekte" løsning er at bruge diffgrams. De kan finde ud af at lave en opdatering op i mod hele tabellen.
Synes godt om
Ny brugerNybegynder
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.