Подключение к SQL Server из Power Apps

Вы можете подключаться либо к SQL Server в Azure, либо к локальной базе данных.

Примечание

Вновь созданные источники данных SQL больше не имеют префикса [dbo], как предыдущих версиях Power Apps.

Дополнительные сведения см. в статье Распространенные проблемы и способы их решения для Power Apps.

Автоматическое создание приложения

В зависимости от того, какой интерфейс Power Apps вы используете, ориентируйтесь на новый интерфейс или классический интерфейс для создания приложения.

  1. Войдите в Power Apps.

  2. На странице Главная выберите вариант одностраничная галерея или мобильное приложение с тремя экранами:

    • Чтобы создать одностраничное приложение-коллекцию с гибким макетом, выберите один из следующих вариантов:
      • Начать с данных > Выбрать внешние данные > Из SQL.
      • Начать с дизайна страницы > Галерея, подключенная к внешним данным > Из SQL.
    • Чтобы создать мобильное приложение с тремя экранами, выберите Начать с шаблона приложения > Из SQL.
  3. Выберите подключение к SQL, а затем выберите таблицу. Чтобы выбрать другое подключение, выберите меню переполнения ..., чтобы сменить подключение или создать новое подключение к SQL.

    Примечание

    Одновременно отображается только одно подключение.

  4. Закончив, нажмите Создать приложение.

Вызов хранимых процедур непосредственно в Power Fx (предварительная версия)

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

Примечание

Выходные параметры не поддерживаются.

  1. Выберите Параметры > Предстоящие функции > Предварительная версия.
  2. Выполните поиск по словосочетанию хранимые процедуры.
  3. Установите в положение Вкл. переключатель Хранимые процедуры SQL Server.
  4. Сохраните и повторно откройте приложение.

Снимок экрана, на котором показан переключатель хранимых процедур SQL Server, установленный в положение «Вкл.».

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

Снимок экрана, на котором показаны списки таблиц, представлений и хранимых процедур, доступных для добавления в ваше приложение.

Если вы не видите нужную вам хранимую процедуру сразу же, быстрее будет воспользоваться поиском.

После выбора хранимой процедуры появляется дочерний узел, и вы можете обозначить хранимую процедуру как безопасную для использования в галереях и таблицах. Если вы установите этот флажок, вы сможете назначать хранимую процедуру в качестве свойства Items для галерей для таблиц, которые будут использоваться в вашем приложении.

Устанавливайте этот флажок только при условии, что:

  1. Многократный вызов этой процедуры по требованию всякий раз, когда Power Apps обновляет элемент управления, не приводит ни к каким побочным эффектам. При использовании в сочетании со свойством Items галереи или таблицы Power Apps вызывает хранимую процедуру всякий раз, когда система определяет, что необходимо обновление. Вы не можете управлять тем, когда вызывается хранимая процедура.
  2. Объем данных, которые вы возвращаете в хранимой процедуре, умеренный. Вызовы действий, такие как хранимые процедуры, не имеют ограничения на количество извлекаемых строк. Они не разбиваются по страницам автоматически с шагом в 100 записей, как табличные источники данных, такие как таблицы или представления. Итак, если хранимая процедура возвращает слишком много данных (многие тысячи записей), ваше приложение может замедлиться или завершиться сбоем. Из соображений производительности вам следует ввести менее 2000 записей.

Важно!

Схема возвращаемых значений хранимой процедуры должна быть статической. Это означает, что она не меняется от вызова к вызову. Например, если вы вызываете хранимую процедуру и она возвращает две таблицы, она должна всегда возвращать две таблицы. Если схема результатов является динамической, вам не следует использовать ее с Power Apps. Например, если вы вызываете хранимую процедуру, и она иногда возвращает одну таблицу, а иногда — две таблицы, то она не будет работать правильно в Power Apps. Power Apps для этого вызова требуется статическая схема.

Пример

Добавляя хранимую процедуру, вы можете видеть в проекте несколько источников данных.

Снимок экрана, на котором показаны источники данных SQL.

Чтобы использовать хранимую процедуру в Power Apps, сначала добавьте в начало имени хранимой процедуры имя связанного с ней соединителя и имя хранимой процедуры. «Paruntimedb.dbonewlibrarybook» в примере иллюстрирует этот шаблон. Также обратите внимание, что когда Power Apps вводит хранимую процедуру, он объединяет полное имя. Таким образом, «dbo.newlibrarybook» становится «dbonewlibrarybook».

Не забудьте соответствующим образом преобразовать значения при их передаче в хранимую процедуру, поскольку вы читаете текстовое значение в Power Apps. Например, если вы обновляете целое число в SQL, вам необходимо преобразовать текст в поле, используя «Value()».

Непосредственный вызов хранимых процедур.

Вы можете получить доступ к хранимой процедуре для свойства Items галереи после того, как объявите ее безопасной для пользовательского интерфейса. Укажите имя источника данных и имя хранимой процедуры, за которым следует «ResultSets». Вы можете получить доступ к нескольким результатам, ссылаясь на возвращаемый набор таблиц, таких как Таблица 1, Таблица 2 и т. д.

Например, ваш доступ к хранимой процедуре источника данных с именем «Paruntimedb» с помощью хранимой процедуры с именем «dbo.spo_show_all_library_books()» будет выглядеть следующим образом.

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

Это заполнит галерею записями. Однако хранимые процедуры представляют собой дополнение к поведению действия табличной модели. Refresh() работает только с табличными источниками данных и не может использоваться с хранимыми процедурами. Затем вам необходимо обновить галерею при создании, обновлении или удалении записи. Когда вы используете Submit() в форме для табличного источника данных, внутри фактически вызывается Refresh() и обновляет галерею.

Чтобы обойти это ограничение, используйте переменную в свойстве OnVisible для экрана и задайте для этой переменной хранимую процедуру.

Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);

А затем задайте для свойства «Items» коллекции имя этой переменной.

SP_Books

Затем после того, как вы создадите, обновите или удалите запись с помощью вызова хранимой процедуры, снова установите переменную. Это обновит галерею.

Paruntimedb.dbonewlibrarybook({   
  book_name: DataCardValue3_2.Text, 
  author: DataCardValue1_2.Text,
    ...
});
Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);

Известные проблемы

Источники данных SQL больше не добавляют префикс [dbo] к имени источника данных

Префикс [dbo] не несет никакой практической пользы в Power Apps, поскольку неоднозначность в именах источников данных устраняется автоматически. Это изменение никак не влияет на существующие источники данных, однако у вновь добавленных источников данных SQL этого префикса не будет.

Если вам нужно обновить большое количество формул в одном из ваших приложений, для глобального поиска и замены можно использовать утилиту упаковки и распаковки исходных файлов Power Apps.

Примечание

Начиная с версии 3.21054, мы автоматически обновляем нарушенные ссылки на старые имя, заменяя их новым именем источника данных после повторного чтения этого источника данных.

Следующие шаги

Примечание

Каковы ваши предпочтения в отношении языка документации? Пройдите краткий опрос (обратите внимание, что этот опрос представлен на английском языке).

Опрос займет около семи минут. Личные данные не собираются (заявление о конфиденциальности).