Enregistrer les données sur la BD

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Bases de données >

Enregistrer les données sur la BD

Cette section :

 

Enregistrer sur la base du progrès de la solution
L'action Enregistrer
Action DB Execute
Filtrer les colonnes à enregistrer
À propos d'OriginalRowSet
Commettre des transactions

 

 

Enregistrer sur la base du progrès de la solution

Le menu contextuel d'un nœud racine $DB dispose d'une commande Enregistrer les données (capture d'écran ci-dessous) qui permet à la source de table représentée par le nœud racine d'être mise à jour à plusieurs moments pendant la progression de la solution. Les options sont décrites ci-dessous. Si l'option par défaut, Pas automatiquement, est sélectionnée, alors les données sont uniquement enregistrées si l'action d'un événement est déclenchée.

 

La commande Enregistrer les données ouvre un sous-menu contenant les options mutuellement exclusives suivantes (une seule sélection possible) :

MTDSaveDataContextMenu

À chaque sortie de page : les données dans l'arborescence sont enregistrées à chaque fois qu'une page contenant cette arborescence est terminée.
À chaque terminaison de solution : les données dans l'arborescence sont enregistrées quand la solution est terminée, quel que soit l'endroit où la manière de sa terminaison.
À la dernière soumission : les données dans l'arborescence sont enregistrées lorsque le flux de travail progresse selon sa conception, de la première à la dernière page et quand le dernier bouton Soumettre est tapoté. Si cette option est sélectionnée et la solution est terminée avant que le dernier bouton Soumettre soit tapoté, les données de l'arborescence ne seront pas enregistrées.
Pas automatiquement : l'arborescence ne sera pas automatiquement enregistrée. Veuillez utiliser les actions Enregistrer, Enregistrer sous fichier, ou Enregistrer sous HTTP/FTP pour enregistrer les données.

 

Le réglage par défaut est Pas automatiquement.

 

L'action Enregistrer

Les données peuvent être enregistrées sur la BD lorsqu'un événement de page ou un événement de commande est déclenché pour lequel une action Enregistré a été défini. Cet événement pourrait être par exemple, le clic du bouton Soumettre par l'utilisateur final. Dans la capture d'écran ci-dessous, le bouton Soumettre est situé dans la barre de la table Edit Offices.

MTDDBCSimulatorEditOffices01Short

L'action Enregistrer peut être définie sur une action de page ou une action de commande. Vous pouvez accéder aux dialogues d'Actions respectifs par le biais du dialogue d'Actions Toutes les actions (Page | Aperçu d'actions). La capture d'écran ci-dessous montre un dialogue d'actions de page défini pour l'événement SurClicDeBoutonSoumettre.

MTDDBCEditOfficesPageActions

Note :Si la BD a une clé privée, celle-ci est utilisée pour enregistrer uniquement les enregistrements qui ont été modifiés, ajoutés ou supprimés. Si la BD n'a pas de clé privée, la table modifiée sera entièrement enregistrée dans la BD remplaçant ainsi la table originale.

 

 

L'action Exécuter BD

L'action Exécuter BD est un mécanisme puissant de modification des données BD. Cette action vous permet d'utiliser des instructions SQL pour mettre à jour et enregistrer des données. Pour plus d'informations concernant l'utilisation de l'action, voir la section Design de page| Base de données | L'action Exécuter BD.

 

Filtrer les colonnes à enregistrer

Dans le menu contextuel des nœuds racine $DB, sélectionner la commande Filtrer les colonnes pour afficher le dialogue Paramètres d'enregistrement colonne de BD (capture d'écran ci-dessous) et pour sélectionner les colonnes devant être mises à jour ou insérées.

 

MTDSaveDBColumns

Le dialogue affiche les colonnes de la source de page BD. Vous pouvez spécifier quelles colonnes mettre à jour ou lesquelles peuvent prendre des valeurs insérées. (Les mises à jour réfèrent à des données modifiées dans des éléments de lignes existantes ; les valeurs insérées réfèrent à des données dans des éléments de ligne récemment ajoutés.) Par défaut, les options Insérer et Mettre à jour de chaque colonne sont sélectionnées ensemble, en tant que paires. Si, néanmoins, vous souhaitez spécifier des options différentes pour les options Insérer et Mettre à jour d'une colonne, cochez la case Utiliser des filtres séparés pour les instructions insert et update. Les attributs de valeur vide peuvent être convertis en valeurs NUL dans la BD en cochant la case de la colonne NUL. Veuillez noter que les attributs manquant seront toujours enregistrés en tant que NUL.

 

Les colonnes qui ne peuvent pas être mises à jour (parce qu'elles sont définies par l'utilisateur, à valeur fixe ou à valeur calculée) ne présenteront pas de case à cocher Insérer, Mettre à jour ou NULL. Dans la capture d'écran ci-dessus, la colonne ID ne peut pas être mise à jour parce qu'elle contient des valeurs fixes. Désélectionner les colonnes que vous ne souhaitez pas mettre à jour. Si vous souhaitez réinitialiser les paramètres Enregistrer pour mettre à jour toutes les colonnes, cliquer sur Réinitialiser sur défaut.

 

À propos de OriginalRowSet

Afin de pouvoir éditer et enregistrer des données, l'arborescence de la source de page doit également comporter un élément OriginalRowSet qui est une copie de l'élément RowSet. Les données originales sont enregistrées dans l'élément OriginalRowSet, alors que les données éditées sont enregistrées dans l'élément RowSet. Lorsque la source de page est enregistrée, la différence entre les deux arbres, OriginalRowSet et RowSet, est calculée et la source de page est mise à jour sur la base de la différence. Si la modification est réussie, les données modifiées sont copiées dans OriginalRowSet de manière à ce qu'OriginalRowSet contienne les données BD récemment enregistrées et le processus de modification peut se renouveler.

 

Pour créer un OriginalRowSet pour une source de page, cliquez avec le bouton de droite sur le nœud racine de la source de page puis activez la commande Créer OriginalRowSet.

 

La commande Créer OriginalRowSet est activée pour les nœuds racine de type base de données ($DB). Il s'agit d'une commande qui crée/supprime une structure de données OriginalRowSet qui contient des données originales de la source de page. Les données modifiées par l'utilisateur sont enregistrées dans la structure principale créée depuis la source de page. Lorsque les données modifiées sont réenregistrées sur la BD, la structure OriginalRowSet est modifiée de manière à contenir les données récemment enregistrées sur la BD. Les données originales de BD sont conservées dans la structure OriginalRowSet jusqu'à ce que les données modifiées soient enregistrées dans la BD. Cela permet de garantir que les données de BD originales sont toujours disponibles dans l'arborescence.

 

Commettre des transactions

Une autre manière d'enregistrer les données dans une BD est de commencer une transaction indépendante et de la commettre. Les transactions BD sont disponibles en tant qu'actions pour les événements de page et de commande.

 

À propos des transactions BD

Une transaction est automatiquement créée puis fermée pour chaque accès BD nécessitant une transaction. Dans certains cas, cela peut ne pas être souhaitable, par exemple pour certaines configurations. Concrètement par exemple, si vous avez deux sources de page BD que vous souhaitez mettre à jour ensemble : si les deux tables sont enregistrées avec succès, la transaction est validée, mais dans le cas d'un échec de l'enregistrement, elle sera annulée. Pour parer à ce type de situation, vous pouvez créer des transactions sur la base d'une connexion.

 

Si vous commencez une transaction, toutes les opérations de BD appartenant à la même connexion BD utiliseront cette transaction.

 

La validation d'une transaction rend les changements visibles à l'extérieur de votre transaction. Les changements peuvent être annulés. Dans ce cas, même si vous avez effectué un enregistrement sur votre source de page, les changements ne seront pas visibles après une annulation ! Veuillez noter que toute transaction qui n'est pas fermée (validée ou annulée) une fois que la fin de l'arborescence d'action a été atteinte sera annulée automatiquement ! Un avertissement sera affiché dans la fenêtre Messages.

 

Il est important de retenir que, alors que le comportement décrit ci-dessus concerne les actions de transaction explicites, il s'applique également à toutes les opérations de BD qui utilisent la même connexion que la transaction.

 

 


© 2019 Altova GmbH