Conectar ao SQL Server a partir do Power Apps

Você pode se conectar ao SQL Server em um banco de dados local ou do Azure.

Observação

Fontes de dados SQL recém-criadas não são mais prefixadas com [dbo] como eram nas versões anteriores do Power Apps.

Para obter mais informações, consulte Problemas comuns e resoluções para o Power Apps.

Gerar um aplicativo automaticamente

Dependendo da interface do Power Apps que você estiver usando, faça referência à nova aparência ou à aparência clássica para criar um aplicativo.

  1. Entre no Power Apps.

  2. Na Home page, selecione a opção galeria de página única ou dispositivo móvel com três telas:

    • Para criar um aplicativo de galeria de página única com um layout dinâmico, escolha:
      • Começar com os dados > Selecionar dados externos > Do SQL.
      • Começar com um design de página > Galeria conectada a dados externos > Do SQL.
    • Para criar um aplicativo móvel de três telas, selecione Começar com um modelo de aplicativo > Do SQL.
  3. Selecione sua conexão SQL e, em seguida, selecione uma tabela. Para escolher uma conexão diferente, selecione o menu de estouro ... para alternar sua conexão ou criar uma nova conexão SQL.

    Observação

    Somente uma conexão é exibida por vez.

  4. Quando terminar, selecione Criar aplicativo.

Chamar procedimentos armazenados diretamente no Power Fx (versão preliminar)

Você pode chamar diretamente os procedimentos armazenados do Power Fx ativando a opção de versão preliminar do procedimento armazenado no SQL Server.

Observação

Não há suporte aos parâmetros de saída.

  1. Acesse Configurações > Recursos futuros > Versão preliminar.
  2. Procure procedimentos armazenados.
  3. Defina a alternância como Ativada para Procedimentos armazenados do SQL Server.
  4. Salve e reabra o aplicativo.

Captura de tela que mostra a alternância de procedimentos armazenados do SQL Server definida como Ativada.

Ao adicionar uma conexão do SQL Server ao aplicativo, agora você pode adicionar tabelas e exibições ou procedimentos armazenados. Esse recurso também funciona com conexões implícitas seguras.

Captura de tela que mostra listas de tabelas, exibições e procedimentos armazenados disponíveis para serem adicionados ao seu aplicativo.

Se você não vir imediatamente seu procedimento armazenado, será mais rápido procurá-lo.

Depois de selecionar um procedimento armazenado, um nó filho será exibido e você poderá designar o procedimento armazenado como Seguro para uso em galerias e tabelas. Se marcar essa opção, você poderá atribuir o procedimento armazenado como uma Items propriedade para galerias para as tabelas usarem em seu aplicativo.

Habilite essa opção somente se:

  1. Não houver efeitos colaterais em chamar esse procedimento sob demanda, várias vezes, sempre que o Power Apps atualizar o controle. Quando usado com uma propriedade Items de uma galeria ou tabela, o Power Apps chama o procedimento armazenado sempre que o sistema determinar que uma atualização é necessária. Não for possível controlar quando o procedimento armazenado é chamado.
  2. A quantidade de dados retornada no procedimento armazenado for modesta. As chamadas de ação, como procedimentos armazenados, não tiverem um limite no número de linhas recuperadas. Elas não são paginadas automaticamente em incrementos de 100 registros, como fontes de dados tabulares, como tabelas ou exibições. Portanto, se o procedimento armazenado retornar muitos dados (muitos milhares de registros), seu aplicativo poderá ficar lento ou travar. Por motivos de desempenho, você deve trazer menos de 2.000 registros.

Importante

O esquema dos valores de retorno do procedimento armazenado deve ser estático. Ou seja, ele não muda de chamada para chamada. Por exemplo, se você chamar um procedimento armazenado e ele retornar duas tabelas, ele sempre deverá retornar duas tabelas. Se o esquema dos resultados for dinâmico, você não deverá usá-lo com o Power Apps. Por exemplo, se você chamar o procedimento armazenado e ele às vezes retornar uma tabela e às vezes retornar duas tabelas, ele não funcionará corretamente no Power Apps. O Power Apps requer um esquema estático para essa chamada.

Exemplo

Ao adicionar um procedimento armazenado, você pode ver mais de uma fonte de dados em seu projeto.

Captura de tela que mostra fontes de dados SQL.

Para usar um procedimento armazenado no Power Apps, primeiro prefixe o nome do procedimento armazenado com o nome do conector associado a ele e o nome do procedimento armazenado. 'Paruntimedb.dbonewlibrarybook' no exemplo ilustra esse padrão. Observe também que, quando o Power Apps traz o procedimento armazenado, ele concatena o nome completo. Assim, 'dbo.newlibrarybook' se torna 'dbonewlibrarybook'.

Lembre-se de converter os valores de forma adequada ao passá-los para o procedimento armazenado conforme necessário, já que você está lendo de um valor de texto no Power Apps. Por exemplo, se você estiver atualizando um inteiro no SQL, será necessário converter o texto no campo usando 'Value()'.

Chamando procedimentos armazenados diretamente.

Você pode acessar um procedimento armazenado para a propriedade Items de uma galeria depois de declará-la segura para a interface do usuário. Faça referência ao nome da fonte de dados e ao nome do procedimento armazenado seguido por 'ResultSets'. Você pode acessar vários resultados fazendo referência ao conjunto de tabelas retornadas, como Tabela 1, Tabela 2 etc.

Por exemplo, o acesso a um procedimento armazenado de uma fonte de dados chamada 'Paruntimedb' com um procedimento armazenado chamado 'dbo.spo_show_all_library_books()' terá a seguinte aparência:

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

Isso preenche a galeria com registros. No entanto, os procedimentos armazenados são uma adição de comportamentos de ação ao modelo tabular. Refresh() só funciona com fontes de dados tabulares e não pode ser usado com procedimentos armazenados. Em seguida, você deverá atualizar a galeria quando um registro for criado, atualizado ou excluído. Quando você usa um Submit() em um formulário para uma fonte de dados tabular, ele efetivamente chama Refresh() nos bastidores e atualiza a galeria.

Para contornar essa limitação, use uma variável na propriedade OnVisible para a tela e defina o procedimento armazenado para a variável.

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

Em seguida, defina a propriedade 'Itens' da galeria como o nome da variável.

SP_Books

Em seguida, depois de criar, atualizar ou excluir um registro com uma chamada para o procedimento armazenado, defina a variável novamente. Isso atualizará a galeria.

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

Problemas conhecidos

As fontes de dados SQL não adicionam mais um prefixo [dbo] ao nome da fonte de dados

O prefixo [dbo] não tem nenhuma finalidade prática no Power Apps, pois a desambiguação dos nomes das fontes de dados é feita automaticamente. As fontes de dados existentes não serão afetadas, mas as fontes de dados SQL adicionadas recentemente não incluirão o prefixo.

Se você precisar atualizar um grande número de fórmulas em um de seus aplicativos, o Pacote de arquivos de origem e utilitário de descompactação do Power Apps pode ser usado para fazer uma pesquisa e substituição global.

Observação

A partir da versão 3.21054, atualizaremos automaticamente as referências de nomes herdados quebrados para o novo nome de fonte de dados depois de ler a fonte de dados.

Próximas etapas

Observação

Você pode nos falar mais sobre suas preferências de idioma para documentação? Faça uma pesquisa rápida. (Observe que esta pesquisa está em inglês)

A pesquisa levará cerca de sete minutos. Nenhum dado pessoal é coletado (política de privacidade).