Condividi tramite


Eseguire una connessione a SQL Server dalla panoramica di Power Apps

Esistono diversi modi per connettersi ai dati in SQL Server nell'app, usando le formule di Power Fx. Puoi accedere ai dati direttamente oppure utilizzare una vista o procedure archiviate per creare, aggiornare o eliminare dati nella tua app.

Prerequisiti

Per accedere direttamente ai dati, puoi creare un'app Inizia con i dati per i dati di SQL Server. Questo metodo consente di ottenere un'app di base funzionante che è possibile modificare con viste e procedure archiviate.

  1. Accedi a Power Apps e quindi alla pagina App.

  2. Seleziona Nuova app>Inizia con i dati.

    Screenshot che mostra come creare un'app partendo dai dati nel menu Nuova app.

  3. Nella pagina Inizia con i dati , scegli Connetti dati esterni.

  4. In Scegli un set di dati per iniziare seleziona Da SQL.

    Se è già presente una connessione al server SQL, questa verrà caricata.

    Nota

    Se non disponi già di una connessione di SQL Server, ti viene richiesto di crearne una.

  5. Seleziona la connessione SQL.

  6. Inserisci il nome del Server e il Nome di database, quindi scegli Connetti. Scegli una tabella dall'elenco delle tabelle visualizzate.

    Screenshot che mostra la pagina Crea un'app in cui è possibile scegliere una connessione SQL Server, inclusa una tabella

    Nota

    Viene mostrata solo una connessione alla volta. Per utilizzare una connessione diversa, seleziona il menu di overflow ... nella tua connessione SQL, quindi trovane una nuova o crea una nuova connessione SQL.

  7. Seleziona Crea app.

Accedi ai dati

Una volta che la tua app è connessa a SQL Server, puoi accedere ai dati: Accedi ai dati in SQL Server.

Visualizza risultati

Per visualizzare i risultati delle query SQL, vedere: Visualizzare i risultati nel server SQL.

Mapping dei tipi di dati di Power Apps

SQL Server Power Apps (applicazioni potenti)
bigint int, decimal, , money, numericsmallint, smallmoney, tinyint, , floatreal Number
char, nchar, varchar, nvarchar, textntext Testo
bit Boolean
date, datetime, datetime2, smalldatetime, datetimeoffsettime Data e ora
uniqueidentifier GUID

Nota

Se un tipo di dati di SQL Server non viene visualizzato nella tabella precedente, tale tipo di dati non è supportato. I tipi di dati non supportati includono gli esempi seguenti: binary(), cursorvarbinary()rowversionimage, hierarchyid, , sql_variant xmltipi di geometria spaziale, tipi di geografia spaziale e tabella. Inoltre, "tinyint" e "smallint" non sono supportati come chiavi primarie.

Funzioni e operazioni di Power Apps delegabili a SQL Server

Power Apps può delegare le operazioni di query Power Fx (ad esempio, Filter) all'origine dati back-end per l'elaborazione. La delega consente al servizio dati back-end (ad esempio, SQL Server) di eseguire il filtro in modo che solo alcuni record debbano essere trasferiti al dispositivo.

Questa tabella mostra le operazioni delegabili a SQL Server in base al tipo di dati. Le espressioni unite a And, Ore Not sono delegabili.

Operazione o funzione Number Testo Boolean Data e ora GUID
*, +, -, / Yes - - NO -
<, <=, >>= Yes NO NO Yes -
=, <> Yes Yes Yes Yes Yes
Average Yes - - - -
EndsWith - Sì [1] - - -
Filter Yes Yes Yes Sì [2] Yes
In (sottostringa) - Sì [3] - - -
IsBlank [4] NO NO NO NO NO
Len (lunghezza) - Sì [5] - - -
Lookup Yes Yes Yes Yes Yes
Max Yes - - NO -
Min Yes - - NO -
Search NO Yes NO NO -
Sort Yes Yes Yes Yes -
SortByColumns Yes Yes Yes Yes -
StartsWith - Sì [6] - - -
Sum Yes - - - -
UpdateIf, RemoveIf [7] Yes Yes Yes Yes Yes

Note

  1. Supportato per (EndsWith(\<column>, "string value")) ma non per (EndsWith("string value", \<column>)). Se una colonna char(10) ha un valore "hello", EndsWith(\<column>, "llo") restituisce false, per impostazione predefinita. Una colonna char(10) ha 10 caratteri.

  2. I filtri di data diretta non funzionano per SQL Server con un gateway dati locale. Tuttavia, è possibile creare una colonna calcolata che funzioni. Ad esempio, è possibile creare:
    ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
    Filtrare quindi la colonna numerica calcolata.

  3. Supportato per ("string value" in \<column>), ma non per (\<column> in "string value").

  4. Un'espressione, Filter('[dbo].[MyOrders]', !IsBlank(CustomerId)) ad esempio, non delega al server. Tuttavia, è possibile usare un'espressione come Filter('[dbo].[MyOrders]', CustomerId <> Blank()), che delega al server ed è semanticamente vicina. La differenza è che la seconda espressione non considera la stringa vuota ("") come vuota. Anche se le espressioni non sono equivalenti, quest'ultima potrebbe funzionare a scopo dell'utente. Non è possibile usare questo metodo per il tipo di dati Guid.

  5. Power Apps delega la Len funzione, ma il comportamento potrebbe non funzionare come previsto. In SQL Server una colonna char(10) con valore "hello" ha sempre una lunghezza di 10. Power Apps considera tuttavia che la stringa ha una lunghezza pari a 5, che può causare discrepanze e confusione. Non usare char/nchar in SQL Server, ma usare varchar/nvarchar invece .

  6. Supportato per (StartsWith(\<column>, "string value")), ma non per (StartsWith("string value", \<column>))

  7. UpdateIf e RemoveIf funzionano localmente, ma simulano la delega a un limite di 500/2000 record. Successivamente, i record superano il limite di record non delega 500/2000. Vengono raccolti record che soddisfano la condizione If. In genere, un massimo di 500/2000 record viene raccolto separatamente e quindi modificato per esecuzione. Tuttavia, è possibile aggiornare più record se la cache dei dati locale esistente è di grandi dimensioni perché la funzione può avere accesso a più record per la valutazione.