none
DataSet - Datenbank Abzug aktualisieren RRS feed

  • Frage

  • Hallo zusammen,

    aktuell stehe ich vor einem kleinen logistischen bzw. logischen Problem und renne mir gerade meine KopfInterneWand ein.
    Im aktuellen Stand habe ich ca. auf meinem MS SQL 2008 R2 eine Datentabelle mit 75.000 Einträgen, stetig wachsend. Diese werden ca. von 50+x Clientstationen angesprochen und regelmäßig aktualisiert. Diese Clients, sind Deutschland weit verteilt und haben auch unterschiedliche Anbindungen.

    Daher ist es nun eine Anforderung, dass ich den Traffic so gering wie möglich halte.

    Habe ich eine Möglichkeit, meine untypisierten DataSets, nur mit Update Werten vom SQL Server zu füllen. Sprich, ich ziehe nach dem Client Start, einen komplett Abzug und würde dann in einem regelmäßigen Interval, diesen Abzug nur partiell aktualisieren (Nur neue, geupdatete und gelöschte Werte).

     

    Gruß

    MS

    Freitag, 11. Februar 2011 18:18

Antworten

  • Hi Martin,
    die Lösung ist ganz einfach. In der/den Datenbanktabellen führst Du ein
    timestamp-Feld mit. Der Datenbankserver trägt bei Neuanlage oder Änderung
    eines Datensatzes einen Wert ein, der ständig wächst. Wenn Du Dir im Client
    den Maximalwert aus den bereits heruntergeladenen Daten holst, dann kannst
    Du mit einer Where-Klausel das herunterladen auf die zuletzt hinzugefügten
    und geänderten Datensätze beschränken. Mit "AddWithKey" können die im Client
    vorhandenen Datensätze aktualisiert werden. Lediglich zwischenzeitlich
    gelöschte Datensätze werden mit dieser Verfahrensweise nicht erkannt. Wenn
    das erforderlich ist, sollte anstelle Löschen ein Löschkennzeichen genutzt
    werden, welches nicht mehr gültige Datensätze identifiziert.
     
    --
    Viele Grüße
    Peter
     
     
    Samstag, 12. Februar 2011 05:52

Alle Antworten

  • Hi Martin,
    die Lösung ist ganz einfach. In der/den Datenbanktabellen führst Du ein
    timestamp-Feld mit. Der Datenbankserver trägt bei Neuanlage oder Änderung
    eines Datensatzes einen Wert ein, der ständig wächst. Wenn Du Dir im Client
    den Maximalwert aus den bereits heruntergeladenen Daten holst, dann kannst
    Du mit einer Where-Klausel das herunterladen auf die zuletzt hinzugefügten
    und geänderten Datensätze beschränken. Mit "AddWithKey" können die im Client
    vorhandenen Datensätze aktualisiert werden. Lediglich zwischenzeitlich
    gelöschte Datensätze werden mit dieser Verfahrensweise nicht erkannt. Wenn
    das erforderlich ist, sollte anstelle Löschen ein Löschkennzeichen genutzt
    werden, welches nicht mehr gültige Datensätze identifiziert.
     
    --
    Viele Grüße
    Peter
     
     
    Samstag, 12. Februar 2011 05:52
  • Hallo Peter,

    danke für deine Antwort. Manchmal sieht man den Wald vor lauter Bäumen nicht mehr.

     

    Gruß
    MS

    Samstag, 12. Februar 2011 09:05