Hallo zusammen,
ich habe eine Frage bezüglich Mehrbenutzerkonflikte in Datenbankanwendungen.
Ich arbeite mit Ado.net DataSet und Ms sql 2000
Es gibt ein Form darunter liegen zwei Tabellen Master und Slawe was für Benutzer natürlich absolut Transparent ist.
In der Master Tabelle habe ich eine Spalte von Typ TimeStamp, mit deren Hilfe wird festgestellt ob Veränderungen an dem jeweiligen Datensatz stattgefunden haben oder nicht und gegebenenfalls wird eine DBConcurrencyException ausgelöst.
Das Problem bereitet aber die Slawe Tabelle sie kann mehrere Paare von MasterPK und anderen Tabelle beinhalten und in der Slawe Tabelle gibt es Update als solches nicht. Da können die Paare entweder eingefügt oder gelöscht werden. Das heißt dort nützt mir die Lösung über eine TimeStamp Spalte gar nicht. Ich muss es wohl irgendwie über Time Stampe Spalte in Master Tabelle versuchen das zu regeln. Ich habe ein Trigger für die Slawe Tabelle geschrieben der beim einfügen oder löschen von Datensätzen in Slawe Tabelle den Wert von Time Stampe Spalte in Master Tabelle verändert. So weit so gut, aber da die Werte zu erst in Slawe und dann in Master Tabelle gelöscht werden kriege ich jetzt immer DBConcurrencyException obwohl das gar nicht stimmt.
Vielleicht weist jemand ein Rat?
Die Idee mit TimeStamp kam von dot.net Magazin Ausgaben 09.04, 10.04 Autor Andreas Kosch
Danke
ich habe eine Frage bezüglich Mehrbenutzerkonflikte in Datenbankanwendungen.
Ich arbeite mit Ado.net DataSet und Ms sql 2000
Es gibt ein Form darunter liegen zwei Tabellen Master und Slawe was für Benutzer natürlich absolut Transparent ist.
In der Master Tabelle habe ich eine Spalte von Typ TimeStamp, mit deren Hilfe wird festgestellt ob Veränderungen an dem jeweiligen Datensatz stattgefunden haben oder nicht und gegebenenfalls wird eine DBConcurrencyException ausgelöst.
Das Problem bereitet aber die Slawe Tabelle sie kann mehrere Paare von MasterPK und anderen Tabelle beinhalten und in der Slawe Tabelle gibt es Update als solches nicht. Da können die Paare entweder eingefügt oder gelöscht werden. Das heißt dort nützt mir die Lösung über eine TimeStamp Spalte gar nicht. Ich muss es wohl irgendwie über Time Stampe Spalte in Master Tabelle versuchen das zu regeln. Ich habe ein Trigger für die Slawe Tabelle geschrieben der beim einfügen oder löschen von Datensätzen in Slawe Tabelle den Wert von Time Stampe Spalte in Master Tabelle verändert. So weit so gut, aber da die Werte zu erst in Slawe und dann in Master Tabelle gelöscht werden kriege ich jetzt immer DBConcurrencyException obwohl das gar nicht stimmt.
Vielleicht weist jemand ein Rat?
Die Idee mit TimeStamp kam von dot.net Magazin Ausgaben 09.04, 10.04 Autor Andreas Kosch
Danke
Comment