BD en tant que sources de données
Cette section :
•à propos Source de données de BD
•Structure d'arborescence de la source de données de BD
•Changer de sources de données
•Clés primaires dans MobileTogether Designer
À propos Source de données de BD
Un nombre quelconque de sources de données de BD peut être ajouté au design d'une page et celles-ci peuvent ensuite y être utilisées. Qu'une source de page de BD soit éditable ou pas est défini au moment d'ajouter la source de données. Spécifiez qu'une source de BD soit non éditable si ses données sont uniquement nécessaires pour la présentation. Rendez la source de page éditable si vous souhaitez permettre à des clients de modifier les données de BD
Lorsqu'une source de BD est ajoutée, une arborescence de données est générée (voir capture d'écran ci-dessous et la section Structure de l'arborescence ci-dessous). Chaque ligne de la table de BD correspond à un élément Row ; les colonnes de la table sont ajoutées en tant qu'attributs de l'élément Row. Si la source de page est utilisée sur des pages multiples, une seule structure d'arborescence peut être partagée sur toutes les instances de la source de page. L'option de partage d'une structure d'arborescence est disponible à chaque fois qu'une source de page qui est utilisée sur une autre page est ajoutée. Lorsqu'une structure partagée est modifiée, vous avez la possibilité de modifier la source de page partagée dans ses instances multiples dans toutes les pages ; en alternative, la source de page partagée est uniquement modifiée dans l'instance dans laquelle elle est modifiée.
Note : | Si les déclarations SQL sont stockées dans une source de page, elles peuvent déclencher des règles de pare-feu alors que le design est exécuté sur un appareil client. Pour éviter ces situations, il est recommandé de suivre l'une des instructions suivantes : (i) configurer la propriété de la source de page Garder les données sur Serveur uniquement ; (ii) utiliser SSL pour les connexions client; (iii) assembler la déclaration SQL sur le serveur le cas échéant. |
Changer de sources de pages
Une fois avoir créé un design qui utilise une BD en tant que source de page, vous pouvez changer la source de page à une autre BD qui présente la même structure et continue d'utiliser le design originel. Pour changer les BD d'une source de page, cliquez avec le bouton de droite sur le nœud de racine $DB de l'arborescence, sélectionner Choisir Source de données BD, et poursuivre avec le processus de connexion BD.
Deux BD sont considérées avoir la même structure si elles ont les mêmes noms de table, les mêmes noms de colonnes et les mêmes définitions de colonnes. Si la nouvelle structure diffère d'une manière ou d'une autre, alors que la connexion à la BD sera établie, la source de page ne sera pas mise à jour avec les données provenant de la nouvelle BD. Si le changement de BD est abandonné, la source de page continuera à utiliser la BD originale.
Note : | Si les BD incluses dans le changement ont des sensibilités à la casse différentes, vous devrez modifier les déclarations SQL, les expressions XPath et tout autre construction qui utilise les noms non correspondants. |
Structure d'arborescence de la source de pages de BD
Chaque source de page de BD a la structure suivante :
$DBX(le nœud racine)
|
|--DB (l’élément racine)
| |
| |--RowSet (un élément conteneur pour les lignes de la table BD)
| | |
| | |--Row (les lignes de la table BD)
| | | |
| | | |--<Attributes> (les colonnes de la table BD)
Lorsque vous ajoutez une source de page BD, vous pouvez choisir si vous voulez ajouter des tables associées. Si une source de page BD a des tables associées, celles-ci seront affichées comme nœuds enfant de la table principale. Ces nœuds enfant peuvent être assignés aux contrôles du design de la manière habituelle. Lorsque les données sont enregistrées à la BD, les nœuds enfant sont considérés appartenir à la hiérarchie de la source de page et seront enregistrés en conséquence.
Les nœuds de l'arborescence peuvent être adressés à l'aide d'une expression Xpath. Si un nœud est défini en tant que XPath context node for the page (via le menu contextuel du nœud), alors les expressions XPath peuvent être construites en relation avec le nœud contextuel Xpath. Autrement, les nœuds peuvent être adressés en utilisant des chemins absolus commençant par le nœud racine : $DBX/DB/RowSet/Row/MyAttribute.
Vous pouvez également utiliser les expressions XQuery pour extraire ou manipuler des données dans l'arborescence de BD. Voir la section sur les clés primaires ci-dessous en guise d'exemple.
À 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.
Les fonctions XPath pour extraire les données BD ou l’info BD
Il existe un nombre de fonctions d’extension XPath MobileTogether XPath qui peuvent être utilisées pour extraire des données BD et des informations sur la BD. Ces fonctions ont des noms qui commencent par mt-db et sont décrits dans la rubrique MobileTogether Extension Functions.
Les clés primaires dans MobileTogether Designer
Les clés primaires dans les BD sont généralement auto-incrémentées. Lorsque cela est le cas et qu'une nouvelle ligne est ajoutée à une table, la colonne de clé primaire de la ligne ajoutée est automatiquement incrémentée. Dans MobileTogether Designer, lorsqu'une table est extraite, la clé primaire et l'information auto-incrémentée sont extraites automatiquement et affichées dans le Volet de sources de page (voir capture d'écran ci-dessous).
Si l'auto-extraction de cette information échoue, le menu contextuel des nœuds d'arborescence contient des commandes qui vous permettront d'annoter correctement les nœuds (voir capture d'écran ci-dessous).
Si la colonne de la clé primaire n'est pas auto-incrémentée, de nouvelles valeurs de clé primaires pour les lignes ajoutées doivent être générées automatiquement à l'aide d'une expression XQuery. Cela en raison du fait que les colonnes de clé primaire ne peuvent pas être éditées. L'expression XQuery est insérée en utilisant la commande de menu contextuel du nœud de clé primaire, S'assurer de son existence avant le chargement de la page (Valeur XPath). Dans l'exemple ci-dessous, une nouvelle valeur est générée pour la clé primaire @id en utilisant l'expression XQuery suivante :
let $all := $DB1/DB/RowSet/Row/@id
let $ids := remove($all, index-of($all, ""))
let $id := if (empty($ids)) then 1 else max($ids) + 1
return $id