Announcement

Collapse
No announcement yet.

RDA - Remote Data Access

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • RDA - Remote Data Access

    Hallo zusammen,

    habe eine Anwendung zur Verwaltung von Ausgaben geschrieben, die sowohl auf einem "normalen" PC (mit SQL Server 2000 SP4), als auch auf einem PocketPC (Windows Mobile 5 und SQL Server 2005 Mobile) läuft, wobei der PocketPC (mit .Net 2.0) nur zur Erfassung getätigter Ausgaben verwendet wird.
    Es werden drei Tabellen verwendet:
    - Artikel-Tabelle (was wurde ausgegeben)
    - Orte-Tabelle (wo wurde etwas ausgegeben)
    - Ausgaben-Tabelle (speichert Preis und Datum, etc.)

    Die Daten werden per Button-Click zwischen dem "normalen" Rechner und dem PocketPC per RDA synchronisiert.
    D.h.: Werden die Tabellen auf dem PocketPC ergänzt, werden die neuen Datensätze per Push auf den "normalen" Rechner übertragen.
    Werden allerdings die Tabellen auf dem "normalen" Rechner mit Daten ergänzt, werden nur die neuen Datensätze der Artikel und Orte-Tabelle zum PocketPC übertragen, da auf dem PocketPC die Ausgaben-Tabelle nicht dargestellt wird (Auswertungen der Ausgaben erfolgen ausschliesslich per Anwendung auf dem "normalen" Rechner).
    Das funktioniert auch alles soweit problemlos.

    Aufgrund von Speichermangel auf dem PocketPC möchte ich die Datenbank auf dem PocketPC so klein wie möglich halten und wollte die Ausgaben-Tabelle nach der Synchronisation auf dem PocketPC leeren.
    Wenn ich dies mache, werden aber auch die Datensätze auf dem "normalen" Rechner gelöscht.

    Jetzt meine Frage:
    Hat vieleicht jemand einen Lösungs-Vorschlag für mich?
    Wäre nett, wenn mir jemand helfen könnte.

    Vorab schon mal vielen Dank,
    Grüße,

    André

  • #2
    Wenn ich das richtig verstanden habe, dann sollte folgendes funktionieren: du machst an die Ausgaben-Tabelle einen InsteadOf-Trigger für das DELETE, der fängt einen Delete-Befehl also einfach ab und lässt den ins Leere gehen. Damit Löschbefehle am Hauptrechner greifen müsste man diesen Trigger dann jeweils disablen/enablen, man könnte aber auch wahrscheinlich mit einer anderen Kennung im Trigger feststellen, wer den Löschbefehl schickt und dann je nachdem den Befehl ausführen oder ignorieren.<br>
    bye,
    Helmu

    Comment


    • #3
      Hi Helmut,

      freut mich, dass Du mir so schnell zwei Lösungsmöglichkeiten anbieten konntest.
      Hättest Du eventuell einen Beispielcode für einen insteadof-Trigger, oder ein Beispiel dafür, wie die Ausführung von SQL-Statements in einem Trigger abgebrochen werden kann?
      Bin nicht so ganz fündig geworden.

      Vielen Grüße
      und vielen Dank,

      Andr&#233

      Comment


      • #4
        Ich habe das Gefühl, du bist mit Triggern noch nicht recht vertraut. Diese Dinger können viel, aber haben auch ihre Eigenheiten (gerade beim SQL-Server), die man kennen sollte, wenn man sie verwendet. Einfach mal nach "slq server trigger" googeln, oder nach "sql instead of trigger" - und sich da etwas einlesen, nach ein paar Links sollte man schon sehen, auf was man sich da einlässt. Aber trotzdem für einen schnellen Start:
        http://derentwickler.de/itr/features/psecom,id,119,nodeid,77.html
        http://msdn.microsoft.com/msdnmag/issues/03/12/DataPoints<br>
        bye,
        Helmu

        Comment


        • #5
          Hallo Helmut,

          vielen Dank.
          Ich habe mit Triggern schon einige Sachen angestellt. Meine bevorzugte Datenbank ist (bedingt durch meine Arbeit) allerdings Oracle.
          Dort gibt es ebenfalls den instead of-Trigger, allerdings (wie Du erwähnt hast) auch einige Abweichungen zum SQl Server.

          Wie auch immer; ich werde das Problem schon lösen und erst mal auf deine beiden Links zurück greifen.

          Nachmals vielen Dank und viele Grüße,
          Andr&#233

          Comment

          Working...
          X