Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Hay diferentes maneras de conectarse a los datos de SQL Server en la aplicación mediante fórmulas de Power Fx. Puede acceder a los datos directamente o utilizar una vista o procedimientos almacenados para crear, actualizar o eliminar datos en su aplicación.
Requisitos previos
Para acceder a los datos directamente, puede crear una aplicación Comenzar con datos para los datos de SQL. Este método le permite obtener una aplicación básica y funcional que puede modificar con vistas y procedimientos almacenados.
Inicie sesión en Power Apps y acceda a la página Aplicaciones.
Seleccione Nueva aplicación > Comenzar con datos.
Desde la página Comenzar con datos, elija Conectar datos externos.
En Elegir un conjunto de datos para comenzar, seleccione Desde SQL.
Si tiene una conexión existente con SQL Server, esta se carga.
Nota
Si aún no tiene una conexión con SQL Server, se le solicitará que cree una.
Seleccione la conexión SQL.
Ingrese el nombre de su Servidor y el nombre de la base de datos, luego seleccione Conectar. Seleccione una tabla de la lista de tablas que aparecen.
Nota
Solo se muestra una conexión a la vez. Para utilizar una conexión diferente, seleccione el menú adicional ... en su conexión SQL, luego busque una nueva o cree una nueva conexión SQL.
Seleccione Crear aplicación.
Acceder a datos
Una vez que su aplicación esté conectada al servidor SQL, podrá acceder a los datos: Acceda a los datos en el servidor SQL.
Ver resultados
Para ver los resultados de sus consultas SQL, consulte: Ver resultados en el servidor SQL.
Asignaciones de tipos de datos de Power Apps
| SQL Server | Power Apps |
|---|---|
bigint, decimal, int, money, numeric, smallint, smallmoney, tinyint, , floatreal |
Number |
char, nchar, varchar, nvarchar, , text, ntext |
Mensaje de texto |
bit |
Boolean |
date, datetime, datetime2, smalldatetime, , datetimeoffset, time |
DateTime |
uniqueidentifier |
GUID |
Nota
Si un tipo de datos de SQL Server no aparece en la tabla anterior, no se admite ese tipo de datos.
Los tipos de datos no admitidos incluyen los ejemplos siguientes: binary(), varbinary(), rowversionhierarchyidimagecursor, sql_variant xmltipos de geometría espacial, tipos de geografía espacial y tabla. Además, "tinyint" y "smallint" no se admiten como claves principales.
Funciones y operaciones de Power Apps que se pueden delegar a SQL Server
Power Apps puede delegar operaciones de consulta de Power Fx (por ejemplo, Filtro) al origen de datos back-end para su procesamiento. La delegación permite que el servicio de datos back-end (por ejemplo, SQL Server) realice el trabajo de filtrado para que solo se deban transferir algunos registros al dispositivo.
En esta tabla se muestran las operaciones que se pueden delegar a SQL Server por tipo de datos. Las expresiones combinadas con And, Ory Not son delegables.
| Operación o función | Number | Mensaje de texto | Boolean | DateTime | GUID |
|---|---|---|---|---|---|
*, +, -, / |
Sí | - | - | No | - |
<, <=, , >, >= |
Sí | No | No | Sí | - |
=, <> |
Sí | Sí | Sí | Sí | Sí |
Average |
Sí | - | - | - | - |
EndsWith |
- | Sí [1] | - | - | - |
Filter |
Sí | Sí | Sí | Sí [2] | Sí |
In (subcadena) |
- | Sí [3] | - | - | - |
IsBlank [4] |
No | No | No | No | No |
Len (longitud) |
- | Sí [5] | - | - | - |
Lookup |
Sí | Sí | Sí | Sí | Sí |
Max |
Sí | - | - | No | - |
Min |
Sí | - | - | No | - |
Search |
No | Sí | No | No | - |
Sort |
Sí | Sí | Sí | Sí | - |
SortByColumns |
Sí | Sí | Sí | Sí | - |
StartsWith |
- | Sí [6] | - | - | - |
Sum |
Sí | - | - | - | - |
UpdateIf, RemoveIf [7] |
Sí | Sí | Sí | Sí | Sí |
Notas
Se admite para
(EndsWith(\<column>, "string value")), pero no para(EndsWith("string value", \<column>)). Si una columna char(10) tiene un valor de "hello",EndsWith(\<column>, "llo")devuelve false, por diseño. Una columna char(10) tiene 10 caracteres.Los filtros de fecha directa no funcionan para SQL Server con una puerta de enlace de datos local. Sin embargo, puede crear una columna calculada que funcione. Por ejemplo, puede crear:
ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
Después, filtre por la columna de número calculado.Compatible con
("string value" in \<column>), pero no para(\<column> in "string value").Una expresión como
Filter('[dbo].[MyOrders]', !IsBlank(CustomerId))no se delegará en el servidor. Sin embargo, puede usar una expresión comoFilter('[dbo].[MyOrders]', CustomerId <> Blank()), que hace delegar en el servidor y está semánticamente cerca. La diferencia es que la segunda expresión no tratará la cadena vacía ("") como vacía. Aunque las expresiones no son equivalentes, esta última podría funcionar con fines. No puede usar este método para el tipo de datos Guid.Power Apps delega la
Lenfunción, pero es posible que el comportamiento no funcione según lo previsto. En SQL Server, una columna char(10) con el valor "hello" siempre tiene una longitud de 10. Sin embargo, Power Apps trata esa cadena como una longitud de 5, lo que puede provocar discrepancias y confusión. No usechar/ncharen SQL Server, sino envarchar/nvarcharsu lugar.Compatible con
(StartsWith(\<column>, "string value")), pero no para(StartsWith("string value", \<column>))UpdateIf y RemoveIf funcionan localmente, pero simulan la delegación a un límite de 500/2000 registros. Los registros se reducen sucesivamente más allá del límite de registros de 500/2000 no de delegación. Registros que cumplen la condición If se recopilan. Por lo general, un máximo de 500/2000 registros se recopilan por separado y, a continuación, se cambian por ejecución. Sin embargo, se pueden actualizar más registros si la caché de datos local existente es grande, ya que la función puede tener acceso a más registros para su evaluación.