Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В приложении существуют различные способы подключения к данным в SQL Server с помощью формул Power Fx. Вы можете получать доступ к данным напрямую или использовать представление или хранимые процедуры для создания, обновления или удаления данных в приложении.
Предварительные условия
Чтобы получить прямой доступ к данным, вы можете создать приложение Начало работы с данными для данных SQL Server. Этот метод позволяет получить базовое, работающее приложение, которое можно изменять с помощью представлений и хранимых процедур.
Войдите в Power Apps и перейдите на страницу Приложения.
Выберите Создать приложение>Начало работы с данными.
На странице Начало работы с данными выберите Подключить внешние данные.
В разделе Выберите набор данных для начала работы, а затем выберите Из SQL.
Если у вас уже есть подключение SQL Server, оно загрузится.
Заметка
Если подключение SQL Server еще не создано, появится предложение его создать.
Выберите ваше подключение SQL.
Введите имя Сервера и имя Базы данных, а затем нажмите кнопку Подключиться. Выберите таблицу из появившегося списка.
Заметка
Одновременно отображается только одно подключение. Чтобы использовать другое подключение, выберите раскрывающееся меню ... в подключении SQL, а затем найдите новое подключение или создайте новое подключение SQL.
Выберите Создать приложение.
Доступ к данным
После подключения приложения к SQL Server вы можете получить доступ к данным: Доступ к данным в SQL Server.
Показать результаты
Чтобы просмотреть результаты запросов SQL, см. раздел Просмотр результатов в SQL Server.
Сопоставления типов данных Power Apps
| SQL Server | Power Apps (Приложения Power) |
|---|---|
bigint, decimal, intmoneynumericsmallintsmallmoneytinyintfloatreal |
Number |
char
nchar
varchar
nvarchar
text
ntext
|
Текст |
bit |
Boolean |
date
datetime
datetime2
smalldatetime
datetimeoffset
time
|
DateTime |
uniqueidentifier |
Гид |
Заметка
Если тип данных SQL Server не отображается в предыдущей таблице, этот тип данных не поддерживается.
Неподдерживаемые типы данных включают следующие примеры: binary(), , varbinary()image, cursorrowversion, , hierarchyid, sql_variant xmlпространственные геометрические типы, пространственные типы географических регионов и таблицы. Кроме того, "tinyint" и "smallint" не поддерживаются в качестве первичных ключей.
Функции и операции Power Apps, которые можно делегировать в SQL Server
Power Apps может делегировать операции запроса Power Fx (например, фильтровать) в внутренний источник данных для обработки. Делегирование позволяет серверной службе данных (например, SQL Server) выполнять фильтрацию так, чтобы на устройство должны быть переданы только несколько записей.
В этой таблице показано, какие операции можно делегировать в SQL Server по типу данных. Выражения, присоединенные к And, Orи Not являются делегированными.
| Операция или функция | Number | Текст | Boolean | DateTime | Гид |
|---|---|---|---|---|---|
*, +, -, / |
Да | - | - | нет | - |
<
<=
>
>=
|
Да | нет | нет | Да | - |
=, <> |
Да | Да | Да | Да | Да |
Average |
Да | - | - | - | - |
EndsWith |
- | Да [1] | - | - | - |
Filter |
Да | Да | Да | Да [2] | Да |
In (подстрока) |
- | Да [3] | - | - | - |
IsBlank [4] |
нет | нет | нет | нет | нет |
Len (длина) |
- | Да [5] | - | - | - |
Lookup |
Да | Да | Да | Да | Да |
Max |
Да | - | - | нет | - |
Min |
Да | - | - | нет | - |
Search |
нет | Да | нет | нет | - |
Sort |
Да | Да | Да | Да | - |
SortByColumns |
Да | Да | Да | Да | - |
StartsWith |
- | Да [6] | - | - | - |
Sum |
Да | - | - | - | - |
UpdateIf, RemoveIf [7] |
Да | Да | Да | Да | Да |
Примечания.
(EndsWith(\<column>, "string value"))Поддерживается, но не для(EndsWith("string value", \<column>)). Если столбец char(10) имеет значение hello,EndsWith(\<column>, "llo")возвращает значение false, по конструктору. Столбец char(10) содержит 10 символов.Фильтры прямых дат не работают для SQL Server с локальным шлюзом данных. Однако вы можете создать вычисляемый столбец, который работает. Например, можно создать следующее:
ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
Затем отфильтруйте вычисляемый столбец чисел.Поддерживается для
("string value" in \<column>), но не для(\<column> in "string value").Выражение,
Filter('[dbo].[MyOrders]', !IsBlank(CustomerId))например, не делегировать серверу. Однако можно использовать такое выражение, какFilter('[dbo].[MyOrders]', CustomerId <> Blank()), которое делегируется серверу и семантически закрывается. Разница заключается в том, что второе выражение не будет рассматривать пустую строку ("") как пустую. Хотя выражения не эквивалентны, они могут работать в ваших целях. Этот метод нельзя использовать для типа данных Guid.Power Apps делегирует функцию
Len, но поведение может не работать должным образом. В SQL Server столбец char(10) со значением hello всегда имеет длину 10. Однако Power Apps рассматривает такую строку как длину 5, что может привести к несоответствиям и путанице. Вместо этого не используйтеcharnvarchar/ncharvarchar/сервер SQL Server.(StartsWith(\<column>, "string value"))Поддерживается для , но не для(StartsWith("string value", \<column>))UpdateIf и RemoveIf работают локально, но имитируют делегирование до предела 500/2000 записей. Они последовательно выводят записи за пределы не делегирования 500/2000 записей. Записи, соответствующие условию If, собираются. Как правило, не более 500/2000 записей собираются отдельно, а затем изменяются на выполнение. Однако дополнительные записи могут быть обновлены, если существующий локальный кэш данных имеет большой размер, так как функция может иметь доступ к дополнительным записям для оценки.