![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)
La possibilité de suivre les modifications dans votre base de données peut être un processus long et fastidieux qui peut, dans certaines circonstances, avoir un impact sur les performances de votre base de données et de vos utilisateurs. InterBase offre une solution facile à mettre en œuvre pour suivre ces changements.
Que sont les vues de changement ?
Change Views est un modèle d’abonnement breveté utilisé pour s’abonner aux données et identifier les données qui ont changé dans la base de données.
Vous créez un abonnement qui couvre différentes tables et colonnes et donnez aux utilisateurs le droit de s’abonner aux modifications des données. Il n’y a pas de tables de journal ou de fichiers externes, il s’agit donc d’une configuration très propre qui effectue un suivi en interne, ce qui signifie que vos modifications sont en sécurité dans votre base de données et ne traînent pas dans des fichiers auxquels tout le monde peut accéder.
Seuls les utilisateurs abonnés à ces modifications de données peuvent réellement voir les modifications mises à leur disposition.
Les abonnements peuvent s’exécuter à la fois pendant une connexion et s’étendant sur une connexion. Ainsi, lors d’une connexion, vous pouvez recevoir une alerte puis récupérer simplement les deltas. Ainsi, si vous deviez extraire quelques milliers d’enregistrements, puis obtenir un message indiquant « des modifications ont été apportées à la table », vous pouvez utiliser les vues de modification pour obtenir le delta au lieu d’avoir à actualiser à nouveau toute la requête. Réduire le temps et le mouvement des données sur votre réseau.
Pour couvrir une connexion, ce qui est vraiment cool, c’est que vous n’avez pas besoin d’être connecté pour qu’il enregistre les modifications. Une fois que vous démarrez une transaction de base de données, vous pouvez définir un abonnement, vous déconnecter de votre base de données, puis démarrer une nouvelle connexion avec une nouvelle transaction à un moment ultérieur.
Lorsque vous apportez des modifications à vos données, vous récupérez ces données chaque fois que vous appliquez les mises à jour. À l’aide des vues de modification d’InterBases, vous pouvez désormais identifier spécifiquement les deltas qui ont modifié le niveau du champ, de sorte que vous n’avez qu’à regrouper et déplacer les données qui ont changé. Certains des avantages de l’utilisation de Change Views sont
- Réduisez les coûts et les E/S disque en minimisant les synchronisations de données sur les appareils mobiles
- Peu d’impact sur les performances
- Aucune table de journalisation externe
- Évolutivité des utilisateurs
- Suivez les changements comme vous le souhaitez
Lors de la synchronisation des modifications de vues, seules les modifications entre les bases de données locales et du serveur sont déplacées, ce qui permet de conserver des données précises et à jour !
Comment configurer les vues de changement
Vous devez suivre deux étapes principales pour utiliser les vues de modification, configurer des abonnements sur le serveur et ajouter quelques composants à votre application.
Serveur
- Créer un abonnement
- Spécifiez les données au niveau de la table, de la colonne/du champ.
- Accorder l’accès à l’abonnement
Exemple pour CRÉER UN ABONNEMENT
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> |
Client
Une fois les abonnements mis en place sur le serveur, vous pouvez les ajouter/activer dans vos applications.
- Démarrez la transaction en mode d’isolement SnapShot.
- Définissez votre abonnement sur actif en utilisant une requête pour exécuter un abonnement défini sur True
- Exécutez une instruction select pour récupérer les deltas. Il peut s’agir d’une simple instruction select.
- Une fois que vous avez saisi votre (vos) delta(s), validez votre transaction pour mettre à jour vos vues de modification dans l’application.
Ressources
Documentation Change Views : https://docwiki.embarcadero.com/InterBase/2020/en/Getting_Started_with_Change_Views
Notifications de modification de données FireDAC : 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