Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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.
Connectez-vous à Power Apps et accédez à la page Applications.
Sélectionnez Nouvelle application>Démarrer avec les données.
Sur la page Démarrer avec les données, choisissez Se connecter aux données externes.
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.
Sélectionnez votre connexion SQL.
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.
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.
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
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.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é.Prise en charge pour
("string value" in \<column>), mais pas pour(\<column> in "string value").Une expression telle que
Filter('[dbo].[MyOrders]', !IsBlank(CustomerId))ne déléguera pas au serveur. Toutefois, vous pouvez utiliser une expression telle queFilter('[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.Power Apps délègue la
Lenfonction, 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 utilisezvarcharnvarchar/à la place.char/ncharPris en charge pour
(StartsWith(\<column>, "string value")), mais pas pour(StartsWith("string value", \<column>))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.