Exibir resultados no SQL Server
Se você estiver usando um padrão de acesso direto à tabela ou uma exibição, o resultado da consulta será associado ao controle ou à tabela. O Power Fx habilita automaticamente a paginação de dados em seu aplicativo na galeria ou na tabela. No entanto, os procedimentos armazenados podem retornar um resultado de consulta, um código de retorno ou valores de parâmetros Out
.
Para usar esses tipos de resultados variados em seu aplicativo, use os padrões a seguir.
Fórmulas para controles diferentes
Fórmulas típicas para exibições e procedimentos armazenados:
Control | Propriedade | Fórmula | Description |
---|---|---|---|
Galeria ou tabela | Itens | DataSource |
A fonte de dados de tabela ou exibição pode ser refinada ainda mais com um Filtro e um StartsWith. As outras cláusulas de consulta geradas são anexadas à consulta existente. |
Formulário | DataSource | DataSource |
A fonte de dados de tabela ou exibição |
Botão Enviar em um formulário | OnSelect | DataSource.dboSPName({ args}); Refresh (‘DataSource’) |
O primeiro DataSource dessa fórmula é a fonte de dados do procedimento armazenado – aquela que contém o procedimento armazenado. O DataSource na fórmula de atualização é a fonte de dados de exibição. |
Botão Excluir em um formulário | OnSelect | SP DataSource.dboSPName({ args}); Refresh (‘View DataSource’) |
O primeiro DataSource dessa fórmula é a fonte de dados do procedimento armazenado – aquela que contém o procedimento armazenado. O DataSource na fórmula de atualização é a fonte de dados de exibição. |
Código de devolução
Use esse código de devolução para acessar os resultados de uma instrução de devolução.
<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).ReturnCode
Parâmetros de saída
Use o nome da propriedade como aparece no devolução JSON.
<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).OutputParameters.<parameterName>
Conjuntos de resultados
Outras tabelas podem ser acessadas por meio de seu nome, por exemplo, Table1
, Table2
ou Table3
.
<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).ResultSets.Table1
Resultados não tipados
Alguns procedimentos armazenados complicados retornam resultados não tipados. Esse resultado é comum para procedimentos armazenados que usam tabelas temporárias. Power Apps não consegue determinar facilmente os resultados com antecedência. Portanto, o retorno é marcado como não tipado, e você não pode acessar esses resultados diretamente. Você deve fornecer um tipo primeiro.
Você pode acessar os dados com o seguinte padrão de exemplo de acesso a dados.
Exemplo de acesso a dados
Puxe os resultados em uma variável nomeada
MyUntypedObject
.Extraia
Table1
dessa variável e coloque-a em uma variável nomeadatable1
.Dica
Esta etapa não é estritamente necessária. É útil, no entanto, colocar todos os resultados em uma variável e, em seguida, retirar as peças que você precisa, mais tarde.
Itere por meio de
table1
e extraia os elementos JSON em pares de valores nomeados.Compare os nomes com nomes retornados no payload JSON.
Para validar, abra um monitor do Power Apps e examine a seção body do nó de dados de um registro.
Set(
<MyUntypedObject>, // pull results into variable
<datasourceName>.<StoredprocedureName>(
{ <paramName1>: "someString" }
).ResultSets
);
Set(
table1, // put Table1 into table1
<MyUntypedObject>.Table1
);
Set(
TypedTable,
ForAll(
table1, // extract JSON from table1
{
BookID: Value(ThisRecord.BookID),
BookName: Text(ThisRecord.BookName)
}
)
);