Partager via


Accéder aux données dans SQL Server

Ajouter une source de données

Accès direct :

Si vous choisissez l’option Démarrer avec les données lors de la création d’une application, la propriété Items de votre galerie a une formule Power Fx avec un nom de source de données qui pointe directement vers votre table de base de données.

Par exemple, si vous avez une table BOOKLENDING, vous voyez la formule suivante :

Search([@'[dbo].[BOOKLENDING]'], SearchInput1.Text, author, author,book_name,category)

Vues et procédures stockées :

Un modèle courant d’accès aux données professionnelles consiste à utiliser des vues, puis des procédures stockées pour la création, la mise à jour et la suppression plutôt que d’autoriser un accès direct. Si vous souhaitez utiliser des vues ou des procédures stockées, vous devez modifier l’exemple de formule. De même, le formulaire de l’enregistrement n’utilise pas non plus l’approche directe intégrée de la formule SubmitForm().

Déclencheurs :

Un modèle de base de données consiste à utiliser des déclencheurs sur les tables. Si une table dispose d’un déclencheur, vous ne pouvez pas utiliser le modèle Submit() de schéma direct pour la création, la mise à jour et la suppression. Submit() a un conflit entre la gestion des déclencheurs SQL et le comportement Power Apps intégré, qui utilise le même paramètre de sortie.

Cependant, vous pouvez accéder directement à la table à des fins d’interrogation, mais pour traiter Create, Update ou Delete, vous devez appeler une procédure stockée.

[!NOTE]

Le connecteur SQL Server, comme tous les connecteurs qui fonctionnent avec des données relationnelles, suppose que les tables ont une clé primaire. Une clé primaire est essentielle pour trouver des enregistrements spécifiques à mettre à jour. Si une table SQL Server n’a pas de clé primaire, les données sont traitées en lecture seule. Si vous disposez de droits d’accès et de modification sur la table SQL Server, envisagez d’ajouter une clé générée automatiquement.

Utiliser une vue

Une vue est une requête enregistrée qui s’affiche sous la forme d’une table de données unique.

Les vues s’affichent dans la liste des tables que vous pouvez sélectionner lorsque vous ajoutez une source de données. Les vues ne prennent en charge que les requêtes, pas les mises à jour. Vous devez utiliser une procédure stockée pour les mises à jour.

Si vous créez une table avec cette option Start with data, vous obtenez des écrans et des formules qui affichent les enregistrements dans une galerie et un formulaire. Vous pouvez voir les formules et les fonctionnalités pour la création, la modification et la suppression. Toutefois, si vous utilisez une vue, vous ne voyez qu’un écran d’affichage pour la galerie et le formulaire.

Vous souhaiterez peut-être utiliser les écrans générés automatiquement depuis Start with data pour les vues.

Pour cette option générée automatiquement :

  1. Choisissez Start with data avec une table de base.
  2. Supprimez et remplacez la source de données de la table.

Example :

Par exemple, si vous avez une table BOOKLENDINGVIEW et que vous l’ajoutez comme source de données pour Power Apps, la formule peut être aussi simple que :

BOOKLENDINGVIEW

Vous pouvez également remplacer d’autres formules de création, de mise à jour et de suppression par des appels de source de données de vue et de procédure stockée.

Utiliser les procédures stockées

Lorsque vous ajoutez une connexion SQL Server à votre application, vous pouvez ajouter des procédures stockées et les appeler directement dans Power Fx.

Note

Cette fonctionnalité fonctionne également avec des connexions implicites sécurisées.

Capture d’écran affichant les listes de tables, de vues et de procédures stockées qui peuvent être ajoutées à votre application.

Une fois que vous avez sélectionné une procédure stockée, un nœud enfant apparaît et vous pouvez désigner la procédure stockée comme Utilisation sécurisée pour les galeries et les tables.

Une procédure stockée est sécurisée si elle n’effectue aucune action qui pourrait être indésirable dans certains scénarios. Par exemple, si une procédure stockée a collecté tous les comptes d’une ville donnée, puis leur a envoyé un e-mail. Vous ne souhaitez peut-être pas toujours que des e-mails soient envoyés chaque fois que la procédure stockée est appelée. Par conséquent, la procédure stockée ne doit pas être marquée comme sécurisée.

Marquer une procédure stockée comme sécurisée uniquement si :

  1. Il n’y a pas d’effets indésirables à appeler cette procédure à la demande.

    Vous devriez être en mesure d’appeler la procédure plusieurs fois ou à chaque fois que le contrôle Power Apps est actualisé. Lorsqu’elle est utilisée avec une propriété Éléments d’une galerie ou d’une table, Power Apps appelle la procédure stockée chaque fois que le système détermine qu’une actualisation est nécessaire. Vous ne pouvez pas contrôler le moment où la procédure stockée est appelée.

  2. Vous renvoyez une quantité modeste de données dans la procédure stockée.

    Les appels à l’action, tels que les procédures stockées, n’ont pas de limite sur le nombre de lignes récupérées. Ils ne sont pas automatiquement paginés en incréments de 100 enregistrements comme les sources de données tabulaires telles que les tables ou les vues.

    Si la procédure stockée renvoie trop de données (plusieurs milliers d’enregistrements), votre application risque de ralentir ou de planter. Pour des raisons de performances, importez moins de 2 000 enregistrements.

Si vous marquez une procédure stockée comme sécurisée, vous pouvez l’affecter en tant que propriété Items dans les galeries pour les tables à utiliser dans votre application.

Important

Le schéma des valeurs de retour de la procédure stockée doit être statique, de sorte que les valeurs ne changent pas d’un appel à l’autre. Par exemple, si une procédure stockée renvoie deux tables, elle renvoie toujours deux tables. Vous pouvez utiliser des résultats avec ou sans type.

La structure des résultats doit également être statique. Par exemple, si le schéma des résultats est dynamique, les résultats sont sans type et vous devez fournir un type pour les utiliser dans Power Apps. Pour plus d’informations, consultez Résultats sans type.

Espace de noms SQL ajouté au nom de la procédure stockée

Le nom de l’espace de noms SQL Server, dans lequel vous stockez la procédure, est ajouté au nom de la procédure stockée. Par exemple, toutes les procédures stockées dans l’espace DBO SQL Server affichent dbo au début du nom.

Par exemple, lorsque vous ajoutez une procédure stockée, vous pouvez voir plusieurs sources de données dans votre projet.

Capture d’écran montrant les sources de données SQL.

Appel d’une procédure stockée

Pour utiliser une procédure stockée dans Power Apps, faites précéder le nom de la procédure stockée du nom du connecteur qui lui est associé, suivi du nom de la procédure stockée, par exemple Paruntimedb.dbonewlibrarybook.

Note

Lorsque Power Apps intègre la procédure stockée, elle concatène l’espace de noms et le nom de la procédure de sorte que dbo.newlibrarybook devient dbonewlibrarybook.

Les arguments sont transmis sous forme d’enregistrement Power Apps avec des paires de valeurs nommées :

<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >})

Astuce

N’oubliez pas de convertir les valeurs si nécessaire lorsque vous les transmettez à votre procédure stockée, puisque vous lisez à partir d’une valeur de texte dans Power Apps. Par exemple, si vous mettez à jour un nombre entier dans SQL, vous devez convertir le texte du champ à l’aide de Value().

Voici un exemple de ce à quoi peuvent ressembler les procédures stockées lors de leur affectation à une propriété OnSelect.

Capture d’écran montrant comment appeler directement des procédures stockées à l’aide de paires clé/valeur et de la notation par points.

Variables et toutes les procédures stockées

Vous pouvez accéder à une procédure stockée pour la propriété Items d’une galerie après l’avoir déclarée comme sûre pour l’interface utilisateur. Référencez le nom de la source de données et le nom de la procédure stockée suivi de ResultSets. Vous pouvez accéder à plusieurs résultats en référençant l’ensemble de tables renvoyées, telles que Table 1, Table 2, etc.

Par exemple, une procédure stockée accessible à partir de la table Paruntimedb avec le nom dbo.spo_show_all_library_books() ressemble à :

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

Cette requête remplit la galerie avec des enregistrements. Cependant, les procédures stockées sont des comportementsd’action sur le modèle tabulaire. Refresh() ne fonctionne qu’avec des sources de données tabulaires et ne peut pas être utilisé avec des procédures stockées. Vous devez actualiser la galerie lorsqu’un enregistrement est créé, mis à jour ou supprimé.

Note

Lorsque vous utilisez un Submit() dans un formulaire pour une source de données tabulaire, il appelle Refresh() en arrière-plan et met à jour la galerie.

Utilisez une variable dans la propriété OnVisible de l’écran et définissez la procédure stockée sur la variable.

Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);

Vous pouvez ensuite définir la propriété Items de la galerie sur le nom de la variable.

SP_Books

Après avoir créé, mis à jour ou supprimé un enregistrement avec un appel à la procédure stockée, définissez à nouveau la variable pour mettre à jour la galerie.

Paruntimedb.dbonewlibrarybook({   
  book_name: DataCardValue3_2.Text, 
  author: DataCardValue1_2.Text,
    ...
});
Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);

Utiliser Power Automate pour appeler les procédures stockées

Power Automate gère le mieux les actions asynchrones. Vous pouvez appeler des procédures stockées dans le cadre d’une série d’appels dans un processus d’entreprise.

Pour appeler Power Automate suivi d’un appel à des procédures stockées, créez des variables d’entrée dans le cadre de votre flux.

Capture d’écran illustrant l’entrée Power Automate.

Transmettez ensuite vos variables d’entrée à l’appel de votre procédure stockée.

Exécuter une procédure stockée

Ajoutez ce flux Power Automate à votre application et appelez-le. Les arguments facultatifs sont transmis sous forme d’enregistrement "{ ... }”. L’exemple suivant contient tous les arguments facultatifs.

Flux Power Automate