Поделиться через


Обзор подключения к SQL Server из Power Apps

В приложении существуют различные способы подключения к данным в SQL Server с помощью формул Power Fx. Вы можете получать доступ к данным напрямую или использовать представление или хранимые процедуры для создания, обновления или удаления данных в приложении.

Предварительные условия

Чтобы получить прямой доступ к данным, вы можете создать приложение Начало работы с данными для данных SQL Server. Этот метод позволяет получить базовое, работающее приложение, которое можно изменять с помощью представлений и хранимых процедур.

  1. Войдите в Power Apps и перейдите на страницу Приложения.

  2. Выберите Создать приложение>Начало работы с данными.

    Снимок экрана, показывающий, как создать приложение, начав работу с данными в меню

  3. На странице Начало работы с данными выберите Подключить внешние данные.

  4. В разделе Выберите набор данных для начала работы, а затем выберите Из SQL.

    Если у вас уже есть подключение SQL Server, оно загрузится.

    Заметка

    Если подключение SQL Server еще не создано, появится предложение его создать.

  5. Выберите ваше подключение SQL.

  6. Введите имя Сервера и имя Базы данных, а затем нажмите кнопку Подключиться. Выберите таблицу из появившегося списка.

    Снимок экрана, на котором показана страница

    Заметка

    Одновременно отображается только одно подключение. Чтобы использовать другое подключение, выберите раскрывающееся меню ... в подключении SQL, а затем найдите новое подключение или создайте новое подключение SQL.

  7. Выберите Создать приложение.

Доступ к данным

После подключения приложения к 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] Да Да Да Да Да

Примечания.

  1. (EndsWith(\<column>, "string value")) Поддерживается, но не для (EndsWith("string value", \<column>)). Если столбец char(10) имеет значение hello, EndsWith(\<column>, "llo") возвращает значение false, по конструктору. Столбец char(10) содержит 10 символов.

  2. Фильтры прямых дат не работают для SQL Server с локальным шлюзом данных. Однако вы можете создать вычисляемый столбец, который работает. Например, можно создать следующее:
    ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
    Затем отфильтруйте вычисляемый столбец чисел.

  3. Поддерживается для ("string value" in \<column>), но не для (\<column> in "string value").

  4. Выражение, Filter('[dbo].[MyOrders]', !IsBlank(CustomerId)) например, не делегировать серверу. Однако можно использовать такое выражение, как Filter('[dbo].[MyOrders]', CustomerId <> Blank()), которое делегируется серверу и семантически закрывается. Разница заключается в том, что второе выражение не будет рассматривать пустую строку ("") как пустую. Хотя выражения не эквивалентны, они могут работать в ваших целях. Этот метод нельзя использовать для типа данных Guid.

  5. Power Apps делегирует функцию Len , но поведение может не работать должным образом. В SQL Server столбец char(10) со значением hello всегда имеет длину 10. Однако Power Apps рассматривает такую строку как длину 5, что может привести к несоответствиям и путанице. Вместо этого не используйте charnvarchar/ncharvarchar/сервер SQL Server.

  6. (StartsWith(\<column>, "string value"))Поддерживается для , но не для(StartsWith("string value", \<column>))

  7. UpdateIf и RemoveIf работают локально, но имитируют делегирование до предела 500/2000 записей. Они последовательно выводят записи за пределы не делегирования 500/2000 записей. Записи, соответствующие условию If, собираются. Как правило, не более 500/2000 записей собираются отдельно, а затем изменяются на выполнение. Однако дополнительные записи могут быть обновлены, если существующий локальный кэш данных имеет большой размер, так как функция может иметь доступ к дополнительным записям для оценки.