BD Exécuter
Lorsque l'événement est déclenché, l'action BD Exécuter procède à l'instruction SQL de l'action sur la source de données sélectionnée dans la liste de choix Connexion. Cette liste de choix recense toutes les sources de données du projet et offre également l'option de paramétrer une connexion de base de données supplémentaire à utiliser spécifiquement avec l'action BD Exécuter. Si la liste de choix Stocker les résultats dans $MT_DBExecute_Result est sélectionnée, les résultats sont stockés dans la variable $MT_DBExecute_Result. Cette variable peut ensuite être utilisée dans des expressions XPath ailleurs dans la page pour fournir le résultat de l'action BD Exécuter.
Traitement d'erreur
L'option sur erreur vous permet de définir les actions à exécuter en cas d'erreur. Puisque le traitement de l'erreur peut être défini précisément pour cette action, les erreurs sur de telles actions (qui permettent la gestion des erreurs) sont traitées en tant qu'avertissements - et pas en tant qu'erreurs. L'avantage est que vous ne devez pas vérifier les erreurs sur les actions pour lesquelles le traitement d'erreur a déjà été défini. Les options de gestion des erreurs suivantes sont disponibles :
•Abandonner le script : en cas d'erreur, toutes les actions suivantes de l'événement déclenché sont terminées. Il s'agit là de l'action par défaut si une erreur se produit. Si vous souhaitez continuer malgré une erreur, sélectionnez l'option Continuer ou Throw.
•Continuer : les actions ne sont pas terminées. Au lieu, vous pouvez sélectionner ce que vous souhaitez faire dans les cas variés : en cas d'absence d'erreur (Sur succès), ou en cas d'erreur (Sur erreur). Par exemple, si vous souhaitez afficher une fenêtre de messages indiquant si un chargement de page a été effectué avec succès ou pas.
•Throw: si une erreur est détectée, cette option lance une exception qui sera stockée dans la variable de l'action Try/Catch. La partie Catch de l'action Try/Catch est utilisée pour spécifier quelle action doit être effectuée en cas d'erreur. Si aucune erreur ne se produit, l'action suivante sera traitée. Voir la section action Try/Catch pour plus de détails.
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.
Note : | Ces actions sont utilisées pour interagir avec des données dans les sources de page de BD. Ce n’est pas le mécanisme idéal pour afficher des données. Si vous souhaitez afficher des données provenant d'un nœud de source de page de BD, veuillez insérer (dans le design) une commande liée à un nœud de source de page. Pour plus d'informations, veuillez consulter les sections concernant les commandes et les sources de page. Les tutoriels vous indiquent des instructions précises pour l'affichage des données de source de page. |
L'instruction SQL
Pour saisir ou modifier l'instruction SQL, cliquer sur le bouton Dialogue supplémentaire. Le dialogue Éditer l'instruction SQL s'affiche (capture d'écran ci-dessous). L'objet racine en bas du dialogue est sélectionné automatiquement et est basé sur la sélection dans la liste de choix Connexion. Le champ Objet racine ne peut pas être modifié. Avant le traitement, veuillez vous assurer qu'il s'agit bien de l'objet racine que vous souhaitez.
Instruction fixe à paramètres optionnels
Pour saisir une instruction SQL, sélectionner Instruction fixe à paramètres optionnels, et saisir l'instruction SQL. L'utilisation des paramètres dans l'instruction SQL permet une plus grande flexibilité. Par exemple, dans la capture d'écran ci-dessus, au lieu de saisir une valeur fixe pour la clause WHERE, un nom de paramètre Maker est utilisé pour fournir la valeur d'un nœud dans une source de page XML. Dans la première ligne ci-dessous, une valeur fixe est utilisée, dans la seconde ligne, le paramètre Maker.
WHERE Manufacturer= 'BMW'
WHERE Manufacturer= :Maker
Pour utiliser un paramètre, écrire le du nom du paramètre précédé d'un double-point (:) dans la déclaration SQL à l'endroit où vous voulez l'utiliser. Dès que vous saisissez le premier caractère après le double-point, une entrée sera créée pour le paramètre dans le panneau Paramètres. Ensuite, dans le panneau Paramètres, saisir une expression XPath pour fournir la valeur du paramètre. Vous pouvez saisir autant de paramètres que vous le souhaitez.
Note: | dans l’instruction SQL, les noms de colonne et de table provenant de la base de données de source sont utilisés, puisque l’instruction SQL requête directement la BD. En revanche, dans l'expression XPath des paramètres, vous devez utiliser les noms des nœuds dans les arborescences de source de page (Row, RowSet, etc.) puisque ce sont ces arborescences dans lesquelles les valeurs du design sont stockées dans le design. |
Instruction générée avec XPath
Vous pouvez aussi utiliser XPath pour générer une instruction SQL. Choisir Instruction générée avec XPath, et saisir l'expression XPath qui génère l'instruction SQL requise. L'avantage est que cela apporte une plus grande flexibilité dans la création de l'instruction SQL. Par exemple, vous pouvez inclure des nœuds d'arborescence de design, d'autres structures XPath, et une entrée d'utilisateur final pour calculer et générer des parties de l'instruction SQL.
Pour construire une instruction SQL en utilisant une expression XPath, choisir Instruction construite avec XPath. Dans le dialogue Éditer l'expression XPath/XQuery qui apparaît, saisir l'expression XPath et cliquer sur OK.
Exécuter une fois pour chaque nœud
L'instruction SQL peut être exécutée une fois sur la source de données ou elle peut être exécutée sur tous les nœuds d'un ensemble de nœuds défini par l'utilisateur. Si vous sélectionnez la deuxième option, vous devrez saisir une expression XPath qui génère l'ensemble des nœuds. L'instruction SQL exécutera ensuite pour chaque nœud dans cet ensemble de nœud. De plus, vous pouvez demander la valeur du nœud actuel de l'ensemble de nœuds en utilisant la variable $MT_TargetNode. Cette variable peut être utilisée, par exemple, dans la définition d'un paramètre utilisé dans l'instruction SQL (voir "Instructions SQL avec les paramètres" ci-dessus).
La variable $MT_DBExecute_Result
L'ensemble de nœuds ou une autre valeur retournée par (l'instruction SQL de) l'action DB Execute est stocké dans la variable intégrée $MT_DBExecute_Result de MobileTogether Designer. Cette variable stocke le résultat de la dernière action DB Execute du projet et peut être utilisée dans des expressions XPath dans d'autres emplacements du projet.
Si l'action BD Exécuter retourne un ensemble de nœuds, vous pouvez construire un élément et insérer l'ensemble de nœud en tant qu'un enfant de l'élément construit. En alternative, vous pouvez sérialiser l'ensemble de nœuds en utilisant la fonction serialize(), comme ceci : serialize($MT_DBExecute_Result). Les deux expressions XPath sont affichées soulignées en rouge dans la capture d'écran ci-dessous.
Si vous souhaitez accéder à un nœud spécifique dans l'ensemble de nœuds, vous pouvez y accéder avec une expression XPath. Par exemple, si vous prenez l'action Exécuter BD dans la capture d'écran ci-dessus. Si, par exemple, l'instruction SELECT retourne l'ensemble de nœud suivant :
<DB>
<RowSet>
<Row Model="Z3 COUPE 2014"/>
<Row Model="Z3 COUPE 2015"/>
<Row Model="Z3 COUPE 2016"/>
<Row Model="Z4 3.0 SI COUPE 2014"/>
<Row Model="Z4 COUPE 2015"/>
</RowSet>
</DB>
•Pour accéder au nom de modèle de la première voiture dans l'ensemble de nœud retourné, l'expression XPath serait : $MT_DBExecute_Result/DB/RowSet/Row[1]/@Model.
•Pour accéder à la ligne de la voiture contenant l'année 2016 dans son nom de modèle, l'expression XPath serait : $MT_DBExecute_Result/DB/RowSet/Row[@Model[contains(. , '2016')]].
Fonctions d'extension de MobileTogether
MobileTogether fournit une série de fonctions d'extension XPath qui ont été créées spécifiquement pour l'utilisation dans les designs MobileTogether. Quelques fonctions peuvent être particulièrement utiles avec des actions spécifiques. Par exemple, mt-available -languages() renvoie les langues dans lesquelles la solution est disponible et pourrait, par exemple, être utilisée avec l'action Boîte de messages. Si une fonction est particulièrement pertinente pour cette action, elle se trouvera dans la liste ci-dessous. Pour une liste complète de ces fonctions d'extension et leurs descriptions, voir la page <Fonctions d'extension MobileTogether.
mt-available-db-connection-names()
mt-db-any-changed-fields()
mt-db-any-changed-rows()
mt-db-deleted-original-fields()
mt-db-deleted-original-rows()
mt-db-file-path()
mt-db-modified-fields()
mt-db-modified-rows()
mt-db-new-fields()
mt-db-new-rows()
mt-db-original row()
mt-external-error-code()
mt-external-error-text()