Connessione a SQL Server da Power Apps

È possibile eseguire la connessione a SQL Server in Azure o in un database locale.

Nota

Le origini dati SQL appena create non hanno più il prefisso [dbo] come nelle versioni precedenti di Power Apps.

Per ulteriori informazioni, vedi Problemi comuni e soluzioni per Power Apps.

Generare un'app automaticamente

A seconda dell'interfaccia Power Apps che stai utilizzando, fai riferimento al nuovo aspetto o al look classico per creare un'app.

  1. Accedi a Power Apps.

  2. Dalla Home page, seleziona l'opzione raccolta a pagina singola o dispositivo mobile a tre schermate:

    • Per creare un'app raccolta a pagina singola con un layout reattivo, scegli una delle seguenti opzioni:
      • Inizia con i dati > Seleziona dati esterni > Da SQL.
      • Inizia con un progetto di pagina > Raccolta collegata a dati esterni > Da SQL.
    • Per creare un'app per dispositivi mobili a tre schermi, seleziona Inizia con un modello app > Da SQL.
  3. Seleziona la tua connessione SQL, quindi una tabella. Per scegliere una connessione diversa, seleziona il menu di overflow ... per cambiare la connessione o creare una nuova connessione SQL.

    Nota

    Viene mostrata solo una connessione alla volta.

  4. Al termine, seleziona Crea app.

Chiama le stored procedure direttamente in Power Fx (anteprima)

È possibile chiamare direttamente le stored procedure di SQL Server da Power Fx attivando l'opzione di anteprima delle procedure memorizzate di SQL Server.

Nota

I parametri di output non sono supportati.

  1. Vai a Impostazioni > Funzionalità in arrivo > Anteprima.
  2. Cerca stored procedure.
  3. Imposta l'interruttore On per Stored procedure di SQL Server.
  4. Salva e riapri l'app.

Screenshot che mostra l'attivazione/disattivazione delle stored procedure di SQL Server.

Quando aggiungi una connessione SQL Server alla tua app, ora puoi aggiungere tabelle, viste o stored procedure. Questa funzionalità funziona anche con connessioni implicite sicure.

Screenshot che mostra gli elenchi di tabelle, viste e stored procedure disponibili per l'aggiunta all'app.

Se non vedi immediatamente la stored procedure, è più veloce cercarla.

Una volta selezionata una stored procedure, viene visualizzato un nodo figlio ed è possibile designare la stored procedure come Sicuro da utilizzare per raccolte e tabelle. Se selezioni questa opzione, puoi assegnare la stored procedure come proprietà Items per le raccolte per le tabelle da utilizzare nella tua app.

Abilita questa opzione solo se:

  1. Non ci sono effetti collaterali nel richiamare questa procedura su richiesta, più volte, ogni volta che Power Apps aggiorna il controllo. Se utilizzato con una proprietà Items di una raccolta o tabella, Power Apps chiama la stored procedure ogni volta che il sistema determina che è necessario un aggiornamento. Non è possibile controllare quando viene chiamata la stored procedure.
  2. La quantità di dati restituiti nella procedura memorizzata è modesta. Le chiamate ad azioni, come le stored procedure, non hanno un limite al numero di righe recuperate. Non vengono automaticamente impaginati con incrementi di 100 record come le origini dati tabulari come tabelle o visualizzazioni. Pertanto, se la stored procedure restituisce troppi dati (molte migliaia di record), la tua app potrebbe essere lenta o bloccarsi. Per motivi di prestazioni dovresti inserire meno di 2.000 record.

Importante

Lo schema dei valori restituiti dalla stored procedure dovrebbe essere statico. Ciò significa che non cambia da chiamata a chiamata. Ad esempio, se chiami una stored procedure e restituisce due tabelle, dovrebbe sempre restituire due tabelle. Se lo schema dei risultati è dinamico non dovresti usarlo con Power Apps. Ad esempio, se chiami la stored procedure e talvolta restituisce una tabella e talvolta restituisce due tabelle, non funzionerà correttamente in Power Apps. Power Apps richiede uno schema statico per questa chiamata.

Esempio

Quando aggiungi una stored procedure, potresti vedere più di un'origine dati nel tuo progetto.

Screenshot che mostra le origini dati SQL.

Per utilizzare una stored procedure in Power Apps, anteporre innanzitutto al nome della stored procedure il nome del connettore ad essa associato e il nome della stored procedure. "Paruntimedb.dbonewlibrarybook" nell'esempio illustra questo criterio. Tieni inoltre presente che quando Power Apps introduce la stored procedure, concatena il nome completo. Quindi, "dbo.newlibrarybook" diventa "dbonewlibrarybook".

Ricordati di convertire i valori in modo appropriato quando li passi alla stored procedure, se necessario, poiché stai eseguendo la lettura da un valore di testo in Power Apps. Ad esempio, se stai aggiornando un numero intero in SQL devi convertire il testo nel campo utilizzando "Value()".

Chiamare direttamente le stored procedure.

Puoi accedere a una stored procedure per la proprietà Items di una raccolta dopo averla dichiarata sicura per l'interfaccia utente. Fare riferimento al nome dell'origine dati e al nome della stored procedure seguito da "ResultSets". È possibile accedere a più risultati facendo riferimento all'insieme di tabelle restituite, ad esempio Tabella 1, Tabella 2 e così via.

Ad esempio, l'accesso a una stored procedure da un'origine dati denominata "Paruntimedb" con una stored procedure denominata "dbo.spo_show_all_library_books()" sarà simile al seguente.

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

Questo popola la raccolta con i record. Tuttavia, le stored procedure sono un'aggiunta di comportamenti azione al modello tabulare. Refresh() funziona solo con origini dati tabulari e non può essere utilizzato con stored procedure. Quindi è necessario aggiornare la raccolta quando un record viene creato, aggiornato o eliminato. Quando usi Submit() su un modulo per un'origine dati tabulare, richiama effettivamente Refresh() in incognito e aggiorna la raccolta.

Per aggirare questa limitazione, utilizzare una variabile nella proprietà OnVisible per lo schermo e impostare la stored procedure sulla variabile.

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

Quindi impostare la proprietà "Items" della raccolta sul nome della variabile.

SP_Books

Quindi, dopo aver creato, aggiornato o eliminato un record con una chiamata alla stored procedure, imposta nuovamente la variabile. Questo aggiorna la raccolta.

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

Problemi noti

Le origini dati SQL non aggiungono più un prefisso [dbo] al nome dell'origine dati

Il prefisso [dbo] non ha alcuno scopo pratico in Power Apps poiché i nomi delle origini dati vengono automaticamente disambiguati. Le origini dati esistenti non saranno interessate da questa modifica, ma le origini dati SQL appena aggiunte non includeranno il prefisso.

Se devi aggiornare un numero elevato di formule in una delle app, l'utility di compressione e decompressioni di origini file di Power Apps può essere utilizzata per eseguire un'operazione di ricerca e sostituzione globale.

Nota

A partire dalla versione 3.21054, aggiorneremo automaticamente i riferimenti ai nomi legacy non funzionanti al nuovo nome origine dati dopo aver letto l'origine dati.

Passaggi successivi

Nota

Puoi indicarci le tue preferenze di lingua per la documentazione? Partecipa a un breve sondaggio. (il sondaggio è in inglese)

Il sondaggio richiederà circa sette minuti. Non viene raccolto alcun dato personale (Informativa sulla privacy).