Partilhar via


Ligar ao SQL Server a partir da descrição geral do Power Apps

Há diferentes maneiras de se conectar a dados no SQL Server em seu aplicativo, usando fórmulas Power Fx. Pode aceder aos dados diretamente ou utilizar uma vista ou procedimentos armazenados para criar, atualizar ou eliminar dados na sua aplicação.

Pré-requisitos

Para aceder aos dados diretamente, pode criar uma aplicação Começar com dados para os seus dados do SQL Server. Este método permite obter uma aplicação básica e funcional que pode ser modificada com vistas e procedimentos armazenados.

  1. Inicie sessão em Power Apps e vá para a página Aplicações.

  2. Selecione Nova aplicação>Começar com dados.

    Captura de tela que mostra como criar um aplicativo começando com dados no menu Novo aplicativo.

  3. Na página Começar com dados, escolha Ligar dados externos.

  4. Em Escolher um conjunto de dados para começar, selecione Do SQL.

    Se você tiver uma conexão de servidor SQL existente, ela será carregada.

    Nota

    Se ainda não tiver uma ligação do SQL Server, ser-lhe-á pedido que crie uma.

  5. Selecione a sua ligação SQL.

  6. Introduza o nome do Servidor e Nome da base de dados, em seguida, escolha Ligar. Escolha uma tabela na lista de tabelas que aparecem.

    Captura de ecrã que mostra a página Criar uma aplicação onde pode escolher uma ligação SQL Server, incluindo uma tabela.

    Nota

    Só é apresentada uma ligação de cada vez. Para utilizar uma ligação diferente, selecione o menu de capacidade excedida ... na sua ligação SQL e encontre uma nova ou crie uma nova ligação SQL.

  7. Selecione Criar aplicação.

Aceder a dados

Depois que seu aplicativo estiver conectado ao SQL Server, você poderá acessar data: Access data no SQL Server.

Ver resultados

Para ver os resultados das suas consultas SQL, consulte: Ver resultados no SQL Server.

Mapeamento do tipo de dados nas Power Apps

SQL Server Power Apps
bigint, decimal, , int, money, numericsmallint, smallmoney, tinyintfloat,real Número
char, nchar, varchar, nvarchar, text, ntext Texto
bit booleano
date, datetime, datetime2, smalldatetime, datetimeoffset, time DateTime
uniqueidentifier Guia

Nota

Se um tipo de dados do SQL Server não aparecer na tabela anterior, esse tipo de dados não terá suporte. Os tipos de dados sem suporte incluem os seguintes exemplos: binary(), varbinary(), image, cursor, rowversion, hierarchyid, sql_variant xml, Tipos de geometria espacial, Tipos de geografia espacial e tabela. Além disso, 'tinyint' e 'smallint' não são suportados como chaves primárias.

Funções e operações do Power Apps delegáveis ao SQL Server

O Power Apps pode delegar operações de consulta do Power Fx (por exemplo, Filtrar) à fonte de dados back-end para processamento. A delegação permite que o serviço de dados back-end (por exemplo, SQL Server) faça o trabalho de filtragem para que apenas alguns registros devam ser transferidos para o seu dispositivo.

Esta tabela mostra quais operações são delegáveis ao SQL Server por tipo de dados. As expressões unidas com And, Ore Not são delegáveis.

Operação ou função Número Texto booleano DateTime Guia
*, +, -, / Yes - - Não -
<, <=, >, >= Yes Não Não Yes -
=, <> Yes Yes Yes Yes Yes
Average Yes - - - -
EndsWith - Sim [1] - - -
Filter Yes Yes Yes Sim [2] Yes
In (substring) - Sim [3] - - -
IsBlank [4] Não Não Não Não Não
Len (comprimento) - Sim [5] - - -
Lookup Yes Yes Yes Yes Yes
Max Yes - - Não -
Min Yes - - Não -
Search Não Yes Não Não -
Sort Yes Yes Yes Yes -
SortByColumns Yes Yes Yes Yes -
StartsWith - Sim [6] - - -
Sum Yes - - - -
UpdateIf, RemoveIf [7] Yes Yes Yes Yes Yes

Observações

  1. Suportado para (EndsWith(\<column>, "string value")) , mas não para (EndsWith("string value", \<column>)). Se uma coluna char(10) tiver um valor de "hello", EndsWith(\<column>, "llo") retornará false, por design. Uma coluna char(10) tem 10 caracteres.

  2. Os filtros de data direta não funcionam para o SQL Server com um Gateway de Dados local. No entanto, você pode criar uma coluna calculada que funcione. Por exemplo, você pode criar:
    ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
    E, em seguida, filtre a coluna de número calculado.

  3. Suportado para ("string value" in \<column>), mas não para (\<column> in "string value").

  4. Uma expressão como Filter('[dbo].[MyOrders]', !IsBlank(CustomerId)) não delegará ao servidor. No entanto, você pode usar uma expressão como Filter('[dbo].[MyOrders]', CustomerId <> Blank()), que delega ao servidor e é semanticamente próxima. A diferença é que a segunda expressão não tratará a cadeia de caracteres vazia ("") como vazia. Embora as expressões não sejam equivalentes, estas últimas podem funcionar para os seus propósitos. Você não pode usar esse método para o tipo de dados Guid.

  5. O Power Apps delega a Len função, mas o comportamento pode não funcionar como esperado. No SQL Server, uma coluna char(10) com o valor "hello" sempre tem um comprimento de 10. No entanto, o Power Apps trata essa cadeia de caracteres como tendo um comprimento de 5, o que pode causar discrepâncias e confusão. Não use char/nchar no servidor SQL, mas use varchar/nvarchar em vez disso.

  6. Suportado para (StartsWith(\<column>, "string value")), mas não para (StartsWith("string value", \<column>))

  7. UpdateIf e RemoveIf funcionam localmente, mas simulam a delegação até um limite de 500/2000 registros. Eles sucessivamente derrubam registros além do limite de registros de não delegação 500/2000. Os registros que atendem à condição If são coletados. Geralmente, um máximo de 500/2000 registros são coletados separadamente e, em seguida, alterados por execução. No entanto, mais registros podem ser atualizados se o cache de dados local existente for grande, pois a função pode ter acesso a mais registros para avaliação.