Enregistrer les données sur la BD
Cette section :
•Enregistrer sur la base du progrès de la solution
•Enregistrer des tables associées
•Filtrer les colonnes à enregistrer
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 contenant les options mutuellement exclusives suivantes (une seule sélection possible) :
•À 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 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.
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.
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. |
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 . 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.
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.
|