Deli z drugimi prek


Vzpostavitev povezave s strežnikom SQL Server prek storitve Power Apps

S strežnikom SQL se lahko povežete v zbirki podatkov Azure ali na mestu uporabe.

Opomba

Novo ustvarjeni viri podatkov SQL nimajo več predpone [dbo] kot v prejšnjih različicah Power Apps.

Za več informacij glejte Pogoste težave in rešitve za Power Apps.

Samodejno ustvarjanje aplikacije

Glede na to, kateri Power Apps vmesnik uporabljate, si oglejte novi videz ali klasični videz za izdelavo aplikacije.

  1. Vpis v storitev Power Apps.

  2. Na domači strani izberite enostransko galerijo ali trojico mobilna možnost:

    • Če želite ustvariti enostransko galerijsko aplikacijo z odzivno postavitvijo, izberite eno od naslednjih možnosti:
      • Začnite s podatki > Izberite zunanje podatke > Iz SQL.
      • Začnite z oblikovanjem strani > Galerija, povezana z zunanjimi podatki > Iz SQL.
    • Če želite ustvariti mobilno aplikacijo s tremi zasloni, izberite Začni s predlogo aplikacije > Iz SQL.
  3. Izberite povezavo SQL in nato izberite tabelo. Če želite izbrati drugo povezavo, izberite ... prelivni meni, da preklopite povezavo ali ustvarite novo povezavo SQL.

    Opomba

    Naenkrat je prikazana samo ena povezava.

  4. Ko končate, izberite Ustvari aplikacijo.

Pokličite shranjene procedure neposredno v Power Fx (predogledna različica)

Zdaj lahko neposredno pokličete shranjene procedure SQL Server iz Power Fx. Privzeto mora biti to novo stikalo vklopljeno. Če ne, ga lahko vklopite.

  1. Pojdite na Nastavitve > Posodobitve > Novo.
  2. Poiščite shranjene procedure.
  3. Nastavite stikalo na Vklopljeno za shranjene procedure SQL Server.
  4. Shranite in znova odprite aplikacijo.

Posnetek zaslona, ​​ki prikazuje stikalo za shranjene procedure SQL Server nastavljeno na Vklopljeno.

Ko svoji aplikaciji dodate povezavo SQL Server, lahko zdaj dodate tabele in poglede ali shranjene procedure. Ta funkcija deluje tudi z varnimi implicitnimi povezavami.

Posnetek zaslona, ​​ki prikazuje sezname tabel, pogledov in shranjenih procedur, ki so na voljo za dodajanje vaši aplikaciji.

Če svojega shranjenega postopka ne vidite takoj, ga boste hitreje poiskali.

Ko izberete shranjeno proceduro, se prikaže podrejeno vozlišče in shranjeno proceduro lahko označite kot Varno za uporabo za galerije in tabele. Če označite to možnost, lahko svojo shranjeno proceduro dodelite kot lastnost Items za galerije za tabele za uporabo v vaši aplikaciji.

Omogočite to možnost samo če:

  1. Ni nobenih stranskih učinkov pri večkratnem klicanju tega postopka na zahtevo, vsakič ko Power Apps osvežite nadzor. Pri uporabi z lastnostjo Items galerije ali tabele Power Apps pokliče shranjeno proceduro, kadar koli sistem ugotovi, da je potrebna osvežitev. Ne morete nadzorovati, kdaj se shranjena procedura kliče.
  2. Količina podatkov, ki jih vrnete v shranjeni proceduri, je skromna. Klici dejanj, kot so shranjene procedure, nimajo omejitve glede števila pridobljenih vrstic. Niso samodejno ostranjeni v korakih po 100 zapisov, kot so tabelarni viri podatkov, kot so tabele ali pogledi. Torej, če shranjena procedura vrne preveč podatkov (več tisoč zapisov), se lahko vaša aplikacija upočasni ali zruši. Zaradi učinkovitosti bi morali prinesti manj kot 2000 zapisov.

Pomembno

Shema vrnjenih vrednosti shranjene procedure mora biti statična. To pomeni, da se ne spreminja od klica do klica. Na primer, če pokličete shranjeno proceduro in ta vrne dve tabeli, bi morala vedno vrniti dve tabeli. Delate lahko s tipkanimi ali netipiziranimi rezultati. Struktura rezultatov mora biti enaka od klica do klica. Če je shema rezultatov dinamična, rezultati ne bodo tipizirani in boste morali navesti vrsto, da jih boste lahko uporabili Power Apps. Za več informacij pojdite na Netipizirani rezultati.

Imenski prostor SQL vnaprej priložen imenu shranjene procedure

Ime imenskega prostora strežnika SQL Server, v katerem je shranjena procedura, je vnaprej priloženo imenu shranjene procedure, ki je zanjo ustvarjena Power Apps. Na primer, vse shranjene procedure v imenskem prostoru 'DBO' SQL Server imajo 'dbo' na začetku imena.

Primer

Ko dodate shranjeno proceduro, boste v svojem projektu morda videli več kot en vir podatkov.

Posnetek zaslona, ​​ki prikazuje vire podatkov SQL.

Klicanje shranjene procedure

Če želite uporabiti shranjeno proceduro v Power Apps, najprej pred ime shranjene procedure dodajte ime konektorja, povezanega z njo, in ime shranjene procedure. 'Paruntimedb.dbonewlibrarybook' v primeru ponazarja ta vzorec. Ko Power Apps prinese shranjeno proceduro, združi imenski prostor in ime procedure in 'dbo.newlibrarybook' postane 'dbonewlibrarybook'.

Argumenti so posredovani kot Power Apps zapis z imenovanimi pari vrednosti:

<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >})

Ne pozabite pretvoriti vrednosti, kolikor je potrebno, ko jih posredujete svoji shranjeni proceduri, saj berete iz besedilne vrednosti v Power Apps. Na primer, če posodabljate celo število v SQL, morate besedilo v polju pretvoriti z uporabo 'Value()'.

Neposredno klicanje shranjenih procedur.

Dostop do rezultatov

Shranjena procedura lahko vrne kodo, vrednosti iz parametrov Out ali rezultate poizvedb. Za dostop do teh rezultatov uporabite naslednje vzorce:

Povratna koda

<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).ReturnCode

Uporabite to za dostop do rezultatov povratnega stavka.

Izhodni parametri

<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).OutputParameters.<parameterName>

Upoštevajte, da uporabite ime parametra, kot je prikazano v tovoru JSON.

Kompleti rezultatov

<datasourceName>.<StoredprocedureName>({<paramName1: value, paramName2: value, ... >}).ResultSets.Table1

Do dodatnih tabel lahko dostopate prek njihovega imena (na primer Tabela1, Tabela2, Tabela3, ...)

Netipizirani rezultati

Nekatere zapletene shranjene procedure vrnejo netipiziran rezultat. Ti rezultati niso neposredno dostopni. Najprej morate navesti vrsto. Do podatkov lahko dostopate z naslednjim vzorcem.

V tem primeru rezultate najprej potegnemo v spremenljivko z imenom "MyUntypedObject". Nato iz te spremenljivke potegnemo 'Table1' in ga postavimo v spremenljivko z imenom 'table1'. Ta korak ni nujno potreben. Koristno pa je, da vse rezultate postavite v spremenljivko v določenem trenutku in nato izvlečete dele, ki jih potrebujete. Nato ponovimo tabelo1 in ekstrahiramo elemente JSON v poimenovanih parih vrednosti. Prepričajte se, da se imena ujemajo z imeni, ki so vrnjena v obremenitvi JSON. Za potrditev odprite Power Apps monitor in poglejte razdelek telesa podatkovnega vozlišča za zapis.

Set(
    <MyUntypedObject>,
    <datasourceName>.<StoredprocedureName>( 
      { <paramName1>: "someString" }
    ).ResultSets
);
Set(
    table1,
    <MyUntypedObject>.Table1
);
Set(
    TypedTable,
    ForAll(
        table1,
        {
            BookID: Value(ThisRecord.BookID),
            BookName: Text(ThisRecord.BookName)
        }
    )
);

Do shranjene procedure za lastnost Items galerije lahko dostopate, ko jo razglasite za varno za uporabniški vmesnik. Navedite ime vir podatkov in ime shranjene procedure, ki ji sledi 'ResultSets'. Do več rezultatov lahko dostopate s sklicevanjem na nabor vrnjenih tabel, kot je tabela 1, tabela 2 itd.

Na primer, vaš dostop do shranjene procedure iz vir podatkov z imenom 'Paruntimedb' s shranjeno proceduro z imenom 'dbo.spo_show_all_library_books()' bo videti takole.

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

S tem se galerija napolni z zapisi. Vendar pa so shranjene procedure dodatek vedenja dejanj tabelarnemu modelu. Refresh() deluje samo s tabelarnimi viri podatkov in ga ni mogoče uporabiti s shranjenimi procedurami. Potem morate osvežiti galerijo, ko je zapis ustvarjen, posodobljen ali izbrisan. Ko uporabite Submit() na obrazcu za tabelarni vir podatkov, učinkovito pokliče Refresh() pod platnicami in posodobi galerijo.

Če se želite izogniti tej omejitvi, uporabite spremenljivko v lastnosti OnVisible za zaslon in nastavite shranjeno proceduro na spremenljivko.

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

In nato nastavite lastnost 'Elementi' galerije na ime spremenljivke.

SP_Books

Ko ustvarite, posodobite ali izbrišete zapis s klicem shranjene procedure, znova nastavite spremenljivko. To posodobi galerijo.

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

Znane težave

Viri podatkov SQL imenu vir podatkov ne dodajo več predpone [dbo]

Predpona [dbo] ne služi nobenemu praktičnemu namenu, Power Apps saj so imena vir podatkov samodejno razločena. Ta sprememba ne vpliva na obstoječe vire podatkov, vendar vsi na novo dodani viri podatkov SQL ne vključujejo predpone.

Če morate posodobiti veliko število formul v eni od svojih aplikacij, lahko Power Apps pripomoček za pakiranje in razpakiranje izvorne datoteke uporabite za globalno iskanje in zamenjavo.

Opomba

Od različice 3.21054 naprej bomo po branju vir podatkov samodejno posodobili sklicevanja na pokvarjena podedovana imena na novo ime vir podatkov.

Naslednji koraki

Opomba

Ali nam lahko poveste, kateri je vaš prednostni jezik za dokumentacijo? Izpolnite kratko anketo. (upoštevajte, da je v angleščini)

Z anketo boste porabili približno sedem minut. Ne zbiramo nobenih osebnih podatkov (izjava o zasebnosti).