![TrackingChangesblog | Embarcadero RAD Studio Delphi C++Builder Blogs trackingchangesblog](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2021/08/TrackingChangesblog-7194421.jpg?resize=1140%2C694&ssl=1)
Die Möglichkeit, Änderungen in Ihrer Datenbank zu verfolgen, kann ein zeitaufwändiger und mühsamer Prozess sein, der sich unter bestimmten Umständen auf die Leistung Ihrer Datenbank und Ihrer Benutzer auswirken kann. InterBase bietet eine einfach zu implementierende Lösung zur Verfolgung dieser Änderungen.
Was sind Änderungsansichten?
Change Views sind ein patentiertes Abonnementmodell, das verwendet wird, um Daten zu abonnieren und zu identifizieren, welche Daten sich in der Datenbank geändert haben.
Sie erstellen ein Abonnement, das verschiedene Tabellen und Spalten abdeckt, und geben Benutzern die Rechte, Änderungen an den Daten zu abonnieren. Es gibt keine Protokolltabellen oder externe Dateien, daher ist es ein sehr sauberes Setup, das intern verfolgt wird, was bedeutet, dass Ihre Änderungen in Ihrer Datenbank sicher sind und nicht in Dateien herumhängen, auf die jeder zugreifen kann.
Nur die Benutzer, die diese Datenänderungen abonniert haben, können die ihnen zur Verfügung gestellten Änderungen tatsächlich sehen.
Abonnements können sowohl während einer Verbindung als auch über eine Verbindung hinweg ausgeführt werden. Während einer Verbindung können Sie also eine Warnung erhalten und dann einfach die Deltas abrufen. Wenn Sie also ein paar tausend Datensätze abrufen und dann die Meldung „Es wurden Änderungen an der Tabelle“ erhalten, können Sie Änderungsansichten verwenden, um das Delta abzurufen, anstatt die gesamte Abfrage erneut aktualisieren zu müssen. Reduzieren Sie den Zeit- und Datenverkehr über Ihr Netzwerk.
Eine wirklich coole Sache beim Überspannen einer Verbindung ist, dass Sie nicht wirklich verbunden sein müssen, um die Änderungen aufzuzeichnen. Sobald Sie eine Datenbanktransaktion starten, können Sie ein Abonnement einrichten, dann die Verbindung zu Ihrer Datenbank trennen und dann zu einem späteren Zeitpunkt eine neue Verbindung mit einer neuen Transaktion starten.
Wenn Sie Änderungen an Ihren Daten vornehmen, rufen Sie diese Daten jedes Mal ab, wenn Sie die Aktualisierungen anwenden. Mithilfe der Änderungsansichten von InterBases können Sie jetzt genau erkennen, welche Deltas die Feldebene geändert haben, sodass Sie nur die geänderten Daten paketieren und verschieben müssen. Einige der Vorteile der Verwendung von Änderungsansichten sind
- Reduzieren Sie Kosten und Festplatten-E/A, indem Sie die Datensynchronisierung auf Mobilgeräten minimieren
- Geringe Auswirkung auf die Leistung
- Keine externen Log-Tabellen
- Skalierbarkeit der Benutzer
- Verfolgen Sie Änderungen nach Ihren Wünschen
Wenn Change Views synchronisiert werden, werden nur die Änderungen zwischen der lokalen und der Serverdatenbank verschoben, sodass die Daten genau und aktuell bleiben!
So richten Sie Ansichten ändern ein
Es gibt zwei wichtige Schritte, die Sie ausführen müssen, um Änderungsansichten zu verwenden, Abonnements auf dem Server einzurichten und Ihrer Anwendung einige Komponenten hinzuzufügen.
Server
- Abonnement erstellen
- Geben Sie die Daten auf Tabellen-, Spalten-/Feldebene an.
- Abonnementzugriff gewähren
Beispiel für ABO ERSTELLEN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<b>CREATE</b><span style="font-weight: 400;"> SUBSCRIPTION sub_employee_changes </span><b>ON</b><span style="font-weight: 400;"> EMPLOYEE (EMP_NO, DEPT_NO, SALARY) DESCRIPTION </span><span style="font-weight: 400;">'Subscribe to changes in EMPLOYEE table'</span><span style="font-weight: 400;">;</span> <b>CREATE</b><span style="font-weight: 400;"> SUBSCRIPTION sub_customer_deletes </span><b>ON</b><span style="font-weight: 400;"> CUSTOMER </span><b>FOR</b> <b>ROW</b><span style="font-weight: 400;"> (</span><b>DELETE</b><span style="font-weight: 400;">) DESCRIPTION </span><span style="font-weight: 400;">'Subscribe to deletes in CUSTOMER table'</span><span style="font-weight: 400;">; </span> <b>CREATE</b><span style="font-weight: 400;"> SUBSCRIPTION sub_various_changes</span> <span style="font-weight: 400;"> </span><b>ON</b><span style="font-weight: 400;"> EMPLOYEE </span><b>FOR</b> <b>ROW</b><span style="font-weight: 400;"> (</span><b>INSERT</b><span style="font-weight: 400;">, </span><b>UPDATE</b><span style="font-weight: 400;">, </span><b>DELETE</b><span style="font-weight: 400;">),</span> <span style="font-weight: 400;"> CUSTOMER </span><b>FOR</b> <b>ROW</b><span style="font-weight: 400;"> (</span><b>INSERT</b><span style="font-weight: 400;">, </span><b>UPDATE</b><span style="font-weight: 400;">, </span><b>DELETE</b><span style="font-weight: 400;">),</span> <span style="font-weight: 400;"> SALES </span><b>FOR</b> <b>ROW</b><span style="font-weight: 400;"> (</span><b>UPDATE</b><span style="font-weight: 400;">),</span> <span style="font-weight: 400;"> DEPARTMENT (</span><b>LOCATION</b><span style="font-weight: 400;">) </span><b>FOR</b> <b>ROW</b><span style="font-weight: 400;"> (</span><b>UPDATE</b><span style="font-weight: 400;">)</span> <span style="font-weight: 400;"> DESCRIPTION </span><span style="font-weight: 400;">'Subscribe to various changes on multiple tables'</span><span style="font-weight: 400;">;</span> <b>GRANT</b><span style="font-weight: 400;"> SUBSCRIBE </span><b>ON</b><span style="font-weight: 400;"> SUBSCRIPTION </span><span style="font-weight: 400;"><</span><span style="font-weight: 400;">subscription_name</span><span style="font-weight: 400;">></span> <b>TO</b> <span style="font-weight: 400;"><</span><span style="font-weight: 400;">user_name</span><span style="font-weight: 400;">></span><span style="font-weight: 400;">;</span> |
Klient
Sobald Abonnements auf dem Server eingerichtet sind, können Sie diese in Ihren Anwendungen hinzufügen/aktivieren.
- Starten Sie die Transaktion im SnapShot-Isolationsmodus.
- Setzen Sie Ihr Abonnement auf aktiv, indem Sie eine Abfrage verwenden, um ein Abonnement aktiv auf Wahr zu setzen
- Führen Sie eine select-Anweisung aus, um die Deltas abzurufen. Dies kann eine einfache Select-Anweisung sein.
- Sobald Sie Ihre Delta(s) erfasst haben, übergeben Sie Ihre Transaktion, um Ihre Änderungsansichten in der Anwendung auf den neuesten Stand zu bringen.
Ressourcen
Dokumentation zum Ändern von Ansichten: https://docwiki.embarcadero.com/InterBase/2020/en/Getting_Started_with_Change_Views
FireDAC-Benachrichtigungen zu Datenänderungen : docwiki.embarcadero.com/RADStudio/Sydney/en/Data_Change_Notifications_(FireDAC)#Data_Change_Notifications_for_Specific_DBMS
InterBase: https://docwiki.embarcadero.com/InterBase/2020/en/Main_Page
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition