Altova MobileTogether Designer

Enregistrer les données sur la BD

Accueil Préc Haut Suivant

Cette section :

 

Enregistrer sur la base du progrès de la solution

L'action Enregistrer  

Action DB Execute

Enregistrer des tables associées

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 Enregistrer d'un événement est déclenchée.

 

La commande Enregistrer les données ouvre un sous-menu avec les options mutuellement exclusives suivantes (une seule option peut être sélectionnée) :

MTDSaveDataContextMenu

À chaque sortie de page : Les données dans l’arborescence sont enregistrées à chaque fois que la page contenant cet arborescence est quittée.

À chaque fin de Toute Solution : Les données dans l’arborescence sont enregistrées quand une solution est quittée, peu importe à quel moment ou comment la solution est quittée.

Sur Dernière Soumission : Les données dans l’arborescence sont enregistrées quand le flux de travail progresse comme désigné, de la première page à la dernière page, et quand vous cliquez sur le dernier bouton Soumettre. Si cette option est sélectionnée et que la solution est quittée avant que vous ayez cliqué sur le dernier bouton Soumettre, alors les données dans l’arborescence ne seront pas enregistrées.

Pas automatiquement : L'arborescence ne sera pas automatiquement enregistrée. Vous devez utiliser les actions Enregistrer, Enregistrer sous Fichier ou Enregistrer sous HTTP/FTP pour enregistrer les données.

 

Dans le cas des bases de données, il existe des options pour (i) des modifications uniquement ; (ii) toutes les lignes ; (iii) toutes les lignes si quelque chose a été modifié. Si vous voulez sélectionner une option qui vérifie les modifications, assurez-vous que OriginalRowSet a été créé pour la table ; autrement, une erreur sera rapportée sur validation.

 

La valeur par défaut est non 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 Enregistrer 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 :Vous pouvez enregistrer (i) uniquement les enregistrements qui ont été modifiés, ajoutés ou supprimés ; (ii) tous les enregistrements ; (iii) tous les enregistrements si quelque chose a été modifié. Si vous voulez sélectionner une option qui vérifie les modifications, assurez-vous que OriginalRowSet a été créé pour la table ; autrement, une erreur sera rapportée sur validation. Notez que 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.

 

Action DB Execute

L’action DB Execute 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 BD Exécuter.

 

Enregistrer des tables associées

Pour spécifier comment enregistrer les tables liées, cliquez sur le bouton Relations icAdditionalDialog. Ceci affiche le dialogue des Paramètres Enregistrer Relation de Base de données, qui affiche les tables liées. Dans la zone de liste déroulante de chaque table liée, vous pouvez choisir des options suivantes : (i) remplacez toutes les lignes de table des tables liées ; (ii) Dans la table liée, enregistrez uniquement les modifications ; (iii) ne pas enregistrer des changements à la table liée.

 

En faisant ces choix, tenez compte de toute relation private-key à foreign-key qui existe entre les tables principales et les tables liées.

 

Vous pouvez aussi accéder aux paramètres enregistrer de la table associée de la source de page BD par le biais du menu contextuel de la source de page dans le Volet de Sources de page.

 

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.

Vous pouvez préciser l'ordre dans lequel les suppressions, les mises à jour et les inserstions se produisent en sélectionnant l'ordre souhaité dans la liste de choix en bas du dialogue.

 

Si vous souhaitez réinitialiser les paramètres Enregistrer pour mettre à jour toutes les colonnes, cliquer sur Réinitialiser sur défaut.

 

À propos d'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.

 

Veuillez noter:

 

L'élément OriginalRowSet n'est pas créé par défaut dans l'arborescence de la source de page BD. Pour le créer cliquez avec le bouton de droite sur le nœud racine de la source de page BD 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 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.

Pour extraire les données d'origine d'une ligne de BD qui a été modifiée mais pas encore enregistrée, utiliser la fonction XPath mt-db-original-row.

 

 

 

 

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.

 

 

© 2018-2024 Altova GmbH