Partager via


Vue d’ensemble Se connecter à SQL Server depuis Power Apps

Il existe différentes façons de se connecter aux données dans SQL Server dans votre application à l’aide de formules Power Fx. Vous pouvez accéder directement aux données ou utiliser une vue ou des procédures stockées pour créer, mettre à jour ou supprimer des données dans votre application.

Prérequis

Pour accéder directement aux données, vous pouvez créer une application Démarrer avec les données pour vos données SQL Server. Cette méthode vous permet d’obtenir une application de base fonctionnelle que vous pouvez modifier avec des vues et des procédures stockées.

  1. Connectez-vous à Power Apps et accédez à la page Applications.

  2. Sélectionnez Nouvelle application>Démarrer avec les données.

    Capture d’écran qui montre comment créer une application en commençant par les données sous le menu Nouvelle application.

  3. Sur la page Démarrer avec les données, choisissez Se connecter aux données externes.

  4. Sous Choisir un jeu de données pour commencer, sélectionnez À partir de SQL.

    Si vous disposez d’une connexion au serveur SQL existante, elle se charge.

    Note

    Si vous ne disposez pas déjà d’une connexion à SQL Server, vous serez invité à en créer une.

  5. Sélectionnez votre connexion SQL.

  6. Entrez votre nom de serveur et votre nom de base de données, puis choisissez Se connecter. Choisissez une table dans la liste des tables qui s’affichent.

    Capture d’écran montrant la page Créer une application dans laquelle vous pouvez choisir une connexion à SQL Server, y compris une table.

    Note

    Une connexion à la fois. Pour utiliser une autre connexion, sélectionnez le menu déroulant du flux dans votre connexion SQL, puis recherchez-en une nouvelle ou créez une nouvelle connexion SQL.

  7. Sélectionnez Créer une application.

Accès aux données

Une fois votre application connectée à SQL Server, vous pouvez accéder aux données : Accéder aux données de SQL Server.

Afficher les résultats

Pour afficher les résultats de vos requêtes SQL, consultez : Afficher les résultats sur le serveur SQL.

Mappage de type de données Power Apps

SQL Server Power Apps
bigint, , decimal, moneyint, , smallintfloatsmallmoneytinyintnumericreal Number
char, , nchar, varcharnvarchar, , textntext Texto
bit Booléen
date, , datetime, datetime2smalldatetime, , datetimeoffsettime Date et heure
uniqueidentifier GUID

Note

Si un type de données SQL Server n’apparaît pas dans le tableau précédent, ce type de données n’est pas pris en charge. Les types de données non pris en charge incluent les exemples suivants : binary(), rowversioncursorhierarchyidvarbinary()image, sql_variant xmltypes de géométrie spatiale, types géographiques spatiaux et table. En outre, « tinyint » et « smallint » ne sont pas pris en charge en tant que clés primaires.

Fonctions et opérations Power Apps délégables à SQL Server

Power Apps peut déléguer des opérations de requête Power Fx (par exemple, Filtrer) à la source de données back-end à des fins de traitement. La délégation permet au service de données back-end (par exemple, SQL Server) d’effectuer le travail de filtrage afin que seuls quelques enregistrements doivent être transférés vers votre appareil.

Ce tableau indique les opérations qui sont délégables à SQL Server par type de données. Les expressions jointes à And, Oret Not sont délégables.

Opération ou fonction Number Texto Booléen Date et heure GUID
*, +, -, / Oui - - Non -
<, , <=>, ,>= Oui Non Non Oui -
=, <> Oui Oui Oui Oui Oui
Average Oui - - - -
EndsWith - Oui [1] - - -
Filter Oui Oui Oui Oui [2] Oui
In (sous-chaîne) - Oui [3] - - -
IsBlank [4] Non Non Non Non Non
Len (longueur) - Oui [5] - - -
Lookup Oui Oui Oui Oui Oui
Max Oui - - Non -
Min Oui - - Non -
Search Non Oui Non Non -
Sort Oui Oui Oui Oui -
SortByColumns Oui Oui Oui Oui -
StartsWith - Oui [6] - - -
Sum Oui - - - -
UpdateIf, RemoveIf [7] Oui Oui Oui Oui Oui

Remarques

  1. Prise en charge pour (EndsWith(\<column>, "string value")) mais pas pour (EndsWith("string value", \<column>)). Si une colonne char(10) a la valeur « hello », EndsWith(\<column>, "llo") retourne false, par conception. Une colonne char(10) comporte 10 caractères.

  2. Les filtres de date directe ne fonctionnent pas pour SQL Server avec une passerelle de données locale. Toutefois, vous pouvez créer une colonne calculée qui fonctionne. Par exemple, vous pouvez créer :
    ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
    Puis filtrez sur la colonne de nombre calculé.

  3. Prise en charge pour ("string value" in \<column>), mais pas pour (\<column> in "string value").

  4. Une expression telle que Filter('[dbo].[MyOrders]', !IsBlank(CustomerId)) ne déléguera pas au serveur. Toutefois, vous pouvez utiliser une expression telle que Filter('[dbo].[MyOrders]', CustomerId <> Blank()), qui délègue au serveur et se ferme sémantiquement. La différence est que la deuxième expression ne traite pas la chaîne vide («  ») comme vide. Bien que les expressions ne soient pas équivalentes, ces dernières peuvent fonctionner à vos fins. Vous ne pouvez pas utiliser cette méthode pour le type de données Guid.

  5. Power Apps délègue la Len fonction, mais le comportement peut ne pas fonctionner comme prévu. Dans SQL Server, une colonne char(10) avec la valeur « hello » a toujours une longueur de 10. Toutefois, Power Apps traite cette chaîne comme ayant une longueur de 5, ce qui peut entraîner des différences et une confusion. N’utilisez pas sur SQL Server, mais utilisez varcharnvarchar/à la place.char/nchar

  6. Pris en charge pour (StartsWith(\<column>, "string value")), mais pas pour (StartsWith("string value", \<column>))

  7. UpdateIf et RemoveIf fonctionnent localement, mais simulent la délégation à une limite de 500/2000 enregistrements. Ils ramènent successivement les enregistrements au-delà de la limite d’enregistrement hors délégation 500/2000. Enregistrements qui répondent à la condition If sont collectés. En règle générale, un maximum de 500/2000 enregistrements sont collectés séparément, puis modifiés par exécution. Toutefois, d’autres enregistrements peuvent être mis à jour si le cache de données local existant est volumineux, car la fonction peut avoir accès à davantage d’enregistrements pour l’évaluation.