wie arbeitet man mit timestamp-feldern?

Lordas

nicht mehr wegzudenken
hi leute,

ich frage mich gerade wie man mit timestamp feldern arbeitet. ich habe einen sql-server 2000 und habe eine schnittstelle aufgebaut. grundlage dieser schnittstelle ist eine abfrage. jetzt möchte ich aber nicht einen tag meine daten auf die schnittstelle rausschreiben und am nächsten tag wieder alle rausschreiben, sondern natürlich nur diejenigen, die ich beim letzten lauf noch nicht erfasst hatte.

nun habe ich mir halt gedacht, dass ich ein timestampfeld in jede tabelle einfüge und dann jeweils den max. timestamp in eine andere tabelle mit dem tabellennamen schreibe und beim nächsten lauf nur noch alle zeilen mit dem kriterium > abgespeichertes timestampfeld in der o.g. tabelle.

oder wie nutze ich sonst timestampfelder bzw. kann mir vielleicht einer sagen wie ich sonst meine schnittstelle aufbauen kann, so dass ich nur noch "neue" oder "geänderte" datensätze rausschreibe?

danke!
 
Hi,

warum ergänzt Du Deine Schnittstelle nicht einfach um eine Spalte, die meinetwegen "status" heißt. Diese Spalte hat den Wert 0, wenn Sie neu ist und bekommt als Kennzeichen eine "1", als Kennzeichen, dass dieser Satz schon verarbeitet wurde.
Du nimmst also bei Deinem täglichen Abgleich nur die Daten, die in der Spalte noch die "0" stehen haben.

Dann brauchst Du nicht mit dem timestamp rumeiern, was aber meines Wissens nach auch funktionieren sollte.

Grüße,
Kleffi
 
das problem mit dem status-feld ist, dass ich natürlich auch nicht nur "neue" datensätze weiterverarbeiten muss, sondern auch geänderte datensätze, ich aber keine möglichkeit habe die anwendung dahingehend zu trimmen, dass sie mir bei einer änderung den status wieder umsetzt (wurde extern programmiert). sicher, ich könnte den status durch einen trigger ändern lassen, denn die DB liegt ja in meiner obhut, aber ich finde schon fast die timestamp-lösung für sauberer (und ich muss nicht auf jeder tabelle noch einen trigger hinterlegen), obwohl diese version natürlich auch mehr speicherplatz benötigt (anstatt 1 bit für den status, dann 8 bit für das binary-feld vom timestamp)!

aber die frage bleibt, wie ich mit dem timestamp umgehe. ich kann zwar über eine integrierte variable den letzten verwendeteten timestamp anzeigen lassen, weiß aber nicht wann ich das letzte mal abgegriffen habe, daher denke ich ist die lösung mit der temp.-tabelle doch wohl die beste, oder?

...dann wäre ich aber doch wieder so weit, dass man gegenüberstellen müsste, ob nun eine weitere temporäre tabelle oder die trigger pro tabelle besser wären?????????
 
Oben