Partager via


Accéder aux données dans SQL Server

Ajouter une source de données

Accès direct :

Si vous sélectionnez l’option Démarrer avec les données lorsque vous créez une application, la propriété Items de votre galerie utilise 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 un BOOKLENDING tableau, vous voyez cette formule :

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

Vues et procédures stockées :

Un modèle d’accès professionnel commun aux données consiste à utiliser des vues, puis des procédures stockées pour créer, mettre à jour et supprimer au lieu d’autoriser l’accès direct. Si vous souhaitez utiliser des vues ou des procédures stockées, modifiez l’exemple de formule. De même, le formulaire de l’enregistrement n’utilise pas l’approche directe intégrée de la SubmitForm() formule.

Déclencheurs :

Un modèle de base de données consiste à utiliser des déclencheurs sur les tables. Si une table a un déclencheur, vous ne pouvez pas utiliser le modèle Submit() direct pour créer, mettre à jour et supprimer. Submit() est en conflit avec la gestion des déclencheurs SQL et le comportement Intégré de Power Apps, qui utilisent le même paramètre de sortie.

Vous pouvez accéder directement à la table pour les requêtes, mais pour gérer Create, Updateou Delete, 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 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 apparaissent 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. Pour mettre à jour les données, utilisez une procédure stockée.

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

Vous souhaiterez peut-être générer automatiquement des écrans à partir des Start with data affichages.

Pour utiliser 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 BOOKLENDINGVIEW table 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 une source de données d’affichage et des appels aux procédures stockées.

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 s’affiche et vous pouvez désigner la procédure stockée comme safe à utiliser pour les galeries et les tables.

Une procédure stockée est sécurisée si elle n’effectue aucune action susceptible d’être indésirable dans certains scénarios. Par exemple, si une procédure stockée collecte tous les comptes d’une ville donnée, puis les envoie un e-mail, vous ne souhaiterez peut-être pas toujours envoyer des e-mails envoyés chaque fois que la procédure stockée est appelée. Dans ce cas, ne marquez pas la procédure stockée comme sûre.

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 pouvez appeler la procédure plusieurs fois ou chaque fois que Power Apps actualise le contrôle. Lorsque vous l’utilisez avec une propriété Items 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. La procédure stockée retourne une quantité modeste de données.

    Les appels d’action, comme les procédures stockées, n’ont pas de limite sur le nombre de lignes récupérées. Elles ne sont pas automatiquement paginées par 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 retourne trop de données (plusieurs milliers d’enregistrements), votre application peut ralentir ou se bloquer. Pour des raisons de performances, apportez moins de 2 000 enregistrements.

Si vous vérifiez une procédure stockée comme sûre, vous pouvez l’affecter en tant que propriété Items dans des galeries ou des tables de 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 retourne deux tables, elle retourne toujours deux tables. Vous pouvez utiliser des résultats spécifiques ou dynamiques.

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

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

Le nom de l’espace de noms SQL Server, où vous stockez la procédure, est ajouté au début du 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, ajoutez le nom du connecteur avant le nom de la procédure stockée, par exemple Paruntimedb.dbonewlibrarybook.

Note

Lorsque Power Apps apporte la procédure stockée, il combine l’espace de noms et le nom de la procédure de sorte qu’il dbo.newlibrarybook devienne 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

Convertissez les valeurs si nécessaire lorsque vous les transmettez dans votre procédure stockée, car vous lisez à partir d’une valeur de texte dans Power Apps. Par exemple, si vous mettez à jour un entier dans SQL, convertissez le texte dans le champ à l’aide Value()de .

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

Accédez à une procédure stockée pour la propriété Items d’une galerie après l’avoir déclarée sécurisée 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. Accédez à plusieurs résultats en référençant l’ensemble de tables retournées, telles que le tableau 1, le tableau 2, etc.

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

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() fonctionne uniquement avec les sources de données tabulaires et ne fonctionne pas avec les procédures stockées. Actualisez 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 OnVisible propriété 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 actualiser 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. Appeler des procédures stockées dans le cadre d’une série d’appels dans un processus métier.

Pour appeler Power Automate, puis appeler 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. Passer des arguments facultatifs en tant qu’enregistrement " { ... }”. L’exemple suivant inclut tous les arguments facultatifs.

Flux Power Automate