Laden...

Datenbanktabelle auf Veränderung "abhören"

Erstellt von epic_fail vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.027 Views
epic_fail Themenstarter:in
33 Beiträge seit 2009
vor 14 Jahren
Datenbanktabelle auf Veränderung "abhören"

verwendetes Datenbanksystem: MSSQL 2005

Guten Morgen,

Es ist mir irgendwie kein besserer Titel eingefallen. Es geht um eine Tabelle, in der Adressen gespeichert werden. Sie ist Teil einer Verwaltungssoftware, die ich nicht anpassen kann. Wenn die Tabelle geändert wird, sprich ein oder mehrere Datensätze dazukommen, sollen diese neuen Daten in eine andere Datenbank geschrieben werden. Also quasi eine einseitige Synchronisierung.

Ich habe bereits ein Programm geschrieben, dass diese Aufgabe erfüllt. Bei jeder Ausführung überprüft es die Tabelle ob neue Datensätze vorhanden sind, und schreibt dann ggf. in die zweite Datenbank. Dieses Programm wird einfach jede Minute aufgerufen.

Und genau das stört mich. Ist es nicht möglich, einen neuen Datensatz gleich nach dem dessen Schreibprozess in die Datenbank zu erkennen? Also quasi die Tabelle "abhören" ob was passiert. Was mir so spontan eingefallen ist, dass ich mein Programm abändere und die Logik in eine Endlosschleife packe. Das erscheint mir allerdings als wenig elegant. Ich würde quasi im Millisekundentakt "SELECT COUNT(Flag_NeuerDatensatz) FROM adresses WHERE Flag_NeuerDatensatz = 1" an den SQL Server schicken. Kann das gut sein?

Kennt Ihr irgendwelche Techniken. Oder könnt ihr mir Tips zur Programmierung geben? Das wäre Toll.

Gruss

458 Beiträge seit 2007
vor 14 Jahren

Einen Trigger auf die Tabelle legen.

be the hammer, not the nail!

epic_fail Themenstarter:in
33 Beiträge seit 2009
vor 14 Jahren

Einen
>
auf die Tabelle legen.

Den Gedanken hatte ich auch. Allerdings bin ich nicht gerade ein Fan von Triggern. Ich mag nicht einmal SP's (auch wenn die ganz schön nützlich sein können). Ich bin der Meinung, das in Datenbanken keine Businesslogik liegen soll.

458 Beiträge seit 2007
vor 14 Jahren

Dann wird dir nichts anderen uebrig bleiben als das ganze alle n Minuten programmatisch zu ueberpruefen und die Datensaetze dann nachtraeglich einzufuegen.

be the hammer, not the nail!

D
269 Beiträge seit 2009
vor 14 Jahren

ich hab von kurzem auch sowas gebraucht.

such mal nach SqlDependency 😉

epic_fail Themenstarter:in
33 Beiträge seit 2009
vor 14 Jahren

Vielen Dank!