[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Auch wir verwenden Trigger für die 'Historisierung'.
    Das gibt uns die Möglichkeit unnötige Historische Daten gar nicht erst zu schreiben.
    U.a. weil unsere Anwendung auch mit Software seitigen Sperren arbeitet und dabei auch
    konkurierende Updates zulässt. Die Schreib/Lese Programme verwalten alter-Satz, neuer-alter-Satz und neuer Satz. Änderungen an Feldern, z.b. mit technischem Hintergrund, deren Änderung nicht relevant ist, werden bei der Historisierung nicht beachtet. Zunächst ist das aufwändig, aber sehr bewährt.
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Immer wieder ähnliche Konzepte.
    Konkurierende Updates sind bei Journalisierung und Transaktionen nicht möglich, das erhöht die Sicherheit. Transaktionen sollten möglichst kurz sein.
    Mit SQL sind aber tatsächlich auch ohne Transaktion konkurierende Updates durchaus möglich.
    Man beachte nur folgendes:

    Additive Updates, die man per "set f = f +/- n" sind unproblematisch.
    Statische Updates, die man per "set f = n" durchführt sollten Themenbezogen sein.

    In .Net gibts ein kleines Framework, dass mir Updatecommand automatisch generiert.
    Diese werden auf DataTable-Objekte angewendet und diese enthalten je Zeile und Spalte einen Original und Current-Value.
    Der Update wird daher automatisch ergänzt per "where f = oldvalue ...." je Spalte des Selects.
    Da steht es außer Frage, dass der Select nach möglichkeit nur die zu ändernden Spalten enthalten sollte.
    Über eine Error-Auflistung erhält man die Zeilen, die nicht geändert werden konnten.

    Und zu guter letzt:
    In manchen DB's gibts Satzversionen. Z.B. bei der Firebird werden Satzversionen vorgehalten, so dass bei entsprechender Transaktion keine Schmutzdaten (dirty reads) vorkommen. Beim Update gibts einen Fehler, wenn die Satzversion bereits neuer ist als für die Transaktion erwartet.
    Beim SQL-Server ist das wohl eher rudimentär. Da gibts die Satzversion nur beim After-Update-Trigger und wiederholten Updates, da der SQL-Server keine Before-Trigger kennt (große Schwachstelle).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Journalreceiver werden gelöscht
    By Hubert in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-09-21, 10:37
  2. Satzanzahl und gelöscht Sätze
    By Robi in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 06-08-20, 16:33
  3. Trigger sperrt Datensatz
    By Peet in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 31-05-17, 10:41
  4. QCLSRC in allen Bibliotheken gelöscht !!!
    By brittner in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 20-02-15, 09:48
  5. 36er ID wird nicht gelöscht
    By Frank.Sobanek in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 16-04-02, 08:01

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •