![]() |
C'est dans la table de consignation des événements que les événements du canal Éditeur sont stockés. Cette section décrit la structure et les limites de cette table.
Vous pouvez personnaliser le nom de la table de consignation des événements et ses colonnes, afin d'éviter des conflits avec les identificateurs de base de données réservés. L'ordre, le nombre et les types de données de ses colonnes doivent cependant rester constants.
RECORD_ID sert à identifier de façon unique les lignes de la table de consignation des événements. Cette colonne doit contenir des valeurs entières uniques séquentielles, croissantes et positives.
La colonne STATUS indique l'état d'une ligne donnée. Ses valeurs possibles sont les suivantes :
Toutes les lignes insérées dans la table de consignation des événements doivent avoir la valeur STATUS 'N' pour être traitées. Les autres caractères d'état sont utilisés uniquement par le canal Éditeur. Les valeurs d'état respectent la casse et doivent donc être en majuscules. Les valeurs de cette colonne doivent être comprises entre 1 et 8. Les types d'événements appartiennent à deux catégories principales : par champ (1 à 3, 7 et 8) et par ligne (4 à 6). Les événements par champ présentent une plus grande granularité que les événements par ligne, mais prennent davantage de place dans la table de consignation. Les événements par ligne présentent une granularité plus fine et exigent moins d'espace. Les types d'événements peuvent également être regroupés en deux autres catégories : avec retour d'interrogation (5 à 8) et avec retour d'interrogation (1 à 4). Les valeurs suivantes permettent une classification des types d'événements. Tous les autres nombres sont réservés à un usage ultérieur. Réservé à un usage ultérieur. Cette valeur ne doit pas être vide. L'utilisateur qui est à l'origine de l'événement. Une valeur vide est interprétée comme désignant un autre utilisateur que l'utilisateur du pilote. À ce titre, les enregistrements avec PERPETRATOR = NULL ou !<nomutilisateur du pilote> sont publiés. Les enregistrements avec PERPETRATOR = <nomutilisateur du pilote> ne sont pas publiés, sauf si le paramètre du canal Éditeur « Autoriser le retour en boucle ? » a la valeur oui. Le nom de la table ou de la vue dans laquelle l'événement s'est produit. Les valeurs de cette colonne doivent être formatées exactement de la même façon dans tous les déclencheurs d'une classe de base de données logique. Par exemple, <nom de colonne de clé primaire> = <valeur> + <nom de colonne de clé primaire> = <valeur> . . .
REMARQUE : Les valeurs de clé primaire placées dans le champ TABLE_KEY doivent être délimitées (c'est-à-dire, mises entre guillemets) si elles contiennent les caractères suivants : , ; ' + = \ " < >
Des différences de remplissage ou de formatage peuvent entraîner un traitement des événements dans le désordre. Dans un souci de performance, il convient de supprimer tout espace inutile dans les valeurs numériques. (Par exemple, « EMPNO=1 » est préférable à « EMPNO= 1 ».) Le nom de la colonne qui a été modifiée. Cette colonne n'est utilisée que par les types d'événements par champ (1 à 3, 7 et 8). Bien que cette colonne soit utilisée uniquement pour les types d'événements par champ, elle doit toujours figurer dans la table de consignation des événements. Dans le cas contraire, l'objet Éditeur provoquera l'arrêt du pilote. L'ancienne valeur du champ. Le nom de colonne de l'ancienne valeur n'est utilisé que par les types d'événements par champ, sans retour d'interrogation (1 à 3). Bien que cette colonne soit utilisée uniquement pour ces types d'événements, elle doit toujours figurer dans la table. Dans le cas contraire, l'objet Éditeur provoquera l'arrêt du pilote. La nouvelle valeur du champ. Le nom de colonne de la nouvelle valeur n'est utilisé que par les types d'événements par champ, sans retour d'interrogation (1 à 3). Bien que cette colonne soit utilisée uniquement pour ces types d'événements, elle doit toujours figurer dans la table. Dans le cas contraire, l'objet Éditeur provoquera l'arrêt du pilote.
Cette section décrit de façon plus détaillée les différents types d'événements et leur interprétation par l'objet Éditeur.
Le tableau ci-dessous présente la corrélation de base entre les types d'événements du canal Éditeur et le code XML généré par l'objet Éditeur.
| Type d'événement | XML résultant |
|---|---|
insertion |
<add> |
mise à jour |
<modify> |
suppression |
<delete> |
L'exemple ci-dessous illustre le code XML généré par l'objet Éditeur pour chaque type possible des événements consignés dans la table EMP.
CREATE TABLE EMP
(
EMPNO NUMERIC(8) NOT NULL,
FNAME VARCHAR2(64),
PHOTO LONGRAW,
CONSTRAINT PK_EMPNO PRIMARY KEY (EMPNO)
);
Tableau 3. Contenu initial d'EMP
| EMPNO | FNAME | LNAME | PHOTO |
|---|---|---|---|
1 |
Jacques |
Untel |
0xAAAA |
Tableau 4. Contenu actuel d'EMP
| EMPNO | FNAME | LNAME | PHOTO |
|---|---|---|---|
1 |
Jean |
Untel |
0xAAAA |
Tableau 5. Contenu de la table EVENTLOG
| EVENT_TYPE | TABLE | TABLE_KEY | COLUMN_NAME | OLD_VALUE | NEW_VALUE |
|---|---|---|---|---|---|
1 |
EMP |
EMPNO=1 |
FNAME |
NULL |
Jacques |
<add class-name="EMP">
<association>EMPNO=1,table=EMP</association>
<add-attr attr-name="FNAME">
<value type="string">Jack</value>
</add-attr>
</add>
Tableau 6. Contenu de la table EVENTLOG
| EVENT_TYPE | TABLE | TABLE_KEY | COLUMN_NAME | OLD_VALUE | NEW_VALUE |
|---|---|---|---|---|---|
2 |
EMP |
EMPNO=1 |
FNAME |
Jacques |
Jean |
<modify class-name="EMP">
<association>EMPNO=1,table=EMP</association>
<modify-attr attr-name="FNAME">
<remove-value>
<value type="string">Jack</value>
</remove-value>
<add-value>
<value type="string">John</value>
</add-value>
</modify-attr>
</modify>
Tableau 7. Contenu de la table EVENTLOG
| EVENT_TYPE | TABLE | TABLE_KEY | COLUMN_NAME | OLD_VALUE | NEW_VALUE |
|---|---|---|---|---|---|
3 |
EMP |
EMPNO=1 |
FNAME |
Jacques |
Jean |
<modify class-name="EMP">
<association>EMPNO=1,table=EMP</association>
<modify-attr attr-name="FNAME">
<remove-all-values/>
<add-value>
<value type="string">John</value>
</add-value>
</modify-attr>
</modify>
Tableau 8. Contenu de la table EVENTLOG
| EVENT_TYPE | TABLE | TABLE_KEY | COLUMN_NAME | OLD_VALUE | NEW_VALUE |
|---|---|---|---|---|---|
4 |
EMP |
EMPNO=1 |
NULL |
NULL |
NULL |
<delete class-name="EMP">
<association>EMPNO=1,table=EMP</association>
</delete>
Tableau 9. Contenu de la table EVENTLOG
| EVENT_TYPE | TABLE | TABLE_KEY | COLUMN_NAME | OLD_VALUE | NEW_VALUE |
|---|---|---|---|---|---|
5 |
EMP |
EMPNO=1 |
NULL |
NULL |
NULL |
<add class-name="EMP">
<association>EMPNO=1,table=EMP</association>
<add-attr attr-name="FNAME">
<value type="string">John</value>
</add-attr>
<add-attr attr-name="LNAME">
<value type="string">Doe</value>
</add-attr>
<add-attr attr-name="PHOTO">
<value type="octet">qqo=</value>
</add-attr>
</add>
Tableau 10. Contenu de la table EVENTLOG
| EVENT_TYPE | TABLE | TABLE_KEY | COLUMN_NAME | OLD_VALUE | NEW_VALUE |
|---|---|---|---|---|---|
6 |
EMP |
EMPNO=1 |
NULL |
NULL |
NULL |
<modify class-name="EMP">
<association>EMPNO=1,table=EMP</association>
<modify-attr attr-name="FNAME">
<remove-all-values/>
<add-value>
<value type="string">John</value>
</add-value>
</modify-attr>
<modify-attr attr-name="LNAME">
<remove-all-values/>
<add-value>
<value type="string">Doe</value>
</add-value>
</modify-attr>
<modify-attr attr-name="PHOTO">
<remove-all-values/>
<add-value>
<value type="octet">qqo=</value>
</add-value>
</modify-attr>
</modify>
Tableau 11. Contenu de la table EVENTLOG
| EVENT_TYPE | TABLE | TABLE_KEY | COLUMN_NAME | OLD_VALUE | NEW_VALUE |
|---|---|---|---|---|---|
7 |
EMP |
EMPNO=1 |
PHOTO |
NULL |
NULL |
<add class-name="EMP">
<association>EMPNO=1,table=EMP</association>
<add-attr attr-name="PHOTO">
<value type="octet">qqo=</value>
</add-attr>
</add>
Tableau 12. Contenu de la table EVENTLOG
| EVENT_TYPE | TABLE | TABLE_KEY | COLUMN_NAME | OLD_VALUE | NEW_VALUE |
|---|---|---|---|---|---|
8 |
EMP |
EMPNO=1 |
PHOTO |
NULL |
NULL |
<modify class-name="EMP">
<association>EMPNO=1,table=EMP</association>
<modify-attr attr-name="PHOTO">
<remove-all-values/>
<add-value>
<value type="octet">qqo=</value>
</add-value>
</modify-attr>
</modify>
 ![]() |