Udostępnij przez


Dostęp do danych w SQL Server

Dodaj źródło danych

Dostęp bezpośredni:

W przypadku wybrania opcji Rozpocznij od danych podczas tworzenia aplikacji właściwość Items galerii używa formuły Power Fx z nazwą źródła danych wskazującą bezpośrednio do tabeli bazy danych.

Jeśli na przykład masz tabelę BOOKLENDING , zostanie wyświetlona następująca formuła:

Search([@'[dbo].[BOOKLENDING]'], SearchInput1.Text, author, author,book_name,category)

Widoki i procedury składowane:

Typowym wzorcem dostępu do danych profesjonalnych jest użycie widoków, a następnie procedur składowanych do tworzenia, aktualizowania i usuwania zamiast zezwalania na bezpośredni dostęp. Jeśli chcesz użyć widoków lub procedur składowanych, zmień przykładowy formułę. Podobnie formularz rekordu nie używa wbudowanego bezpośredniego podejścia formuły SubmitForm() .

Wyzwalacze:

Jednym z wzorców baz danych jest używanie wyzwalaczy na tabelach. Jeśli tabela ma wyzwalacz, nie można użyć bezpośredniego wzorca Submit() do tworzenia, aktualizowania i usuwania. Submit() konflikty z obsługą wyzwalacza SQL i wbudowanym zachowaniem usługi Power Apps, które używają tego samego parametru wyjściowego.

Możesz bezpośrednio uzyskać dostęp do tabeli dla zapytań, ale aby obsłużyć Createprocedurę składowaną , Updatelub Delete.

Uwaga

Łącznik programu SQL Server, podobnie jak wszystkie łączniki współpracujące z danymi relacyjnymi, zakłada, że tabele mają klucz podstawowy. Klucz podstawowy ma kluczowe znaczenie dla znajdowania określonych rekordów do zaktualizowania. Jeśli tabela programu SQL Server nie ma klucza podstawowego, dane są tylko do odczytu. Jeśli masz dostęp do tabeli serwera SQL i uprawnienia do jej edycji, rozważ dodanie automatycznie wygenerowanego klucza.

Użycie widoku

Widok to zapisane zapytanie, które jest wyświetlane jako pojedyncza tabela danych.

Widoki są wyświetlane na liście tabel, które można wybrać podczas dodawania źródła danych. Widoki obsługują tylko zapytania - nie aktualizacje. Aby zaktualizować dane, użyj procedury składowanej.

Jeśli utworzysz tabelę z opcją Start with data , uzyskasz ekrany i formuły, które wyświetlają rekordy w galerii i formularzu. Zobaczysz formuły i funkcje tworzenia, edytowania i usuwania rekordów. Jeśli jednak używasz widoku, zobaczysz tylko ekran wyświetlania galerii i formularza.

Możesz chcieć automatycznie wygenerować ekrany z Start with data widoków.

Aby użyć tej automatycznie wygenerowanej opcji:

  1. Wybierz Start with data z tabelą podstawową.
  2. Usunięcie i zastąpienie źródła danych tabeli.

Przykład:

Jeśli na przykład masz tabelę BOOKLENDINGVIEW i dodasz ją jako źródło danych dla usługi Power Apps, formuła może być następująca:

BOOKLENDINGVIEW

Możesz również zastąpić inne formuły tworzenia, aktualizowania i usuwania za pomocą źródła danych widoku oraz wywołań procedur składowanych.

Korzystanie z procedur składowanych

Po dodaniu połączenia SQL Server do aplikacji można dodawać procedury składowane i wywoływać je bezpośrednio w aplikacji. Power Fx.

Uwaga

Ta funkcja działa również z bezpiecznymi niejawnymi połączeniami.

Zrzut ekranu przedstawiający listę tabel, widoków i procedur składowanych dostępnych do dodania do aplikacji.

Po wybraniu procedury składowanej zostanie wyświetlony węzeł podrzędny i można wyznaczyć procedurę składowaną jako Bezpieczną do użycia dla galerii i tabel.

Procedura składowana jest bezpieczna , jeśli nie wykonuje żadnych akcji, które mogą być niepożądane w niektórych scenariuszach. Jeśli na przykład procedura składowana zbiera wszystkie konta z danego miasta, a następnie wysyła do nich wiadomość e-mail, możesz nie zawsze chcieć wysyłać wiadomości e-mail za każdym razem, gdy jest wywoływana procedura składowana. W takim przypadku nie oznaczaj procedury składowanej jako bezpiecznej.

Sprawdź procedurę składowaną jako bezpieczną tylko wtedy, gdy:

  1. Wywołanie tej procedury na żądanie nie ma żadnych skutków ubocznych.

    Można wywołać procedurę wiele razy lub za każdym razem, gdy usługa Power Apps odświeża kontrolkę. Gdy używasz jej z właściwością Items galerii lub tabeli, usługa Power Apps wywołuje procedurę składowaną za każdym razem, gdy system określi, że jest wymagane odświeżenie. Nie można kontrolować, kiedy jest wywoływana procedura składowana.

  2. Procedura składowana zwraca niewielką ilość danych.

    Wywołania akcji, takie jak procedury składowane, nie mają limitu liczby pobranych wierszy. Nie są one automatycznie stronicowane w 100 przyrostach rekordów, takich jak tabelaryczne źródła danych, takie jak tabele lub widoki.

    Jeśli procedura składowana zwraca zbyt dużo danych (wiele tysięcy rekordów), aplikacja może spowolnić lub ulec awarii. Ze względu na wydajność należy wprowadzić mniej niż 2000 rekordów.

Jeśli sprawdzisz procedurę składowaną jako bezpieczną, możesz przypisać ją jako właściwość Items w galeriach lub tabelach w aplikacji.

Ważne

Schemat wartości zwracanych procedury składowanej powinien być statyczny, więc wartości nie zmieniają się od wywołania do wywołania. Jeśli na przykład procedura składowana zwraca dwie tabele, zawsze zwraca dwie tabele. Możesz pracować z konkretnymi lub dynamicznymi wynikami.

Struktura wyników musi być również statyczna. Jeśli na przykład schemat wyników jest dynamiczny, wyniki są dynamiczne i musisz podać określony typ, aby używać ich w usłudze Power Apps. Aby uzyskać więcej informacji, zobacz wyniki dynamiczne.

Przestrzeń nazw SQL poprzedzona nazwą procedury składowanej

Nazwa przestrzeni nazw programu SQL Server, w której jest przechowywana procedura, jest dodawana do początku nazwy procedury składowanej. Na przykład wszystkie procedury składowane w przestrzeni nazw 'DBO' SQL Server mają 'dbo' na początku nazwy.

Przykładowo, po dodaniu procedury składowanej w projekcie może pojawić się więcej niż jedno źródło danych.

Zrzut ekranu przedstawiający źródła danych SQL.

Wywołanie procedury składowanej

Aby użyć procedury składowanej w usłudze Power Apps, dodaj nazwę łącznika przed nazwą procedury składowanej, taką jak Paruntimedb.dbonewlibrarybook.

Uwaga

Gdy usługa Power Apps wprowadza procedurę składowaną, łączy przestrzeń nazw i nazwę procedury, aby dbo.newlibrarybook stała się .dbonewlibrarybook

Argumenty są przekazywane jako rekord Power Apps z nazwanymi parami wartości:

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

Porada

Przekonwertuj wartości w razie potrzeby podczas przekazywania ich do procedury składowanej, ponieważ odczytujesz z wartości tekstowej w usłudze Power Apps. Jeśli na przykład aktualizujesz liczbę całkowitą w języku SQL, przekonwertuj tekst w polu przy użyciu polecenia Value().

Oto przykład tego, jak mogą wyglądać procedury składowane po przypisaniu ich do właściwości OnSelect.

Zrzut ekranu pokazujący, jak bezpośrednio wywoływać procedury składowane przy użyciu par klucz/wartość i notacji kropkowej.

Zmienne i wszystkie procedury składowane

Uzyskaj dostęp do procedury składowanej dla właściwości Items galerii po zadeklarowaniu jej bezpieczeństwa dla interfejsu użytkownika. Odwołanie do nazwy źródła danych i nazwy procedury składowanej, a następnie ResultSets. Uzyskaj dostęp do wielu wyników, odwołując się do zestawu zwracanych tabel, takich jak Tabela 1, Tabela 2 itd.

Na przykład procedura składowana z tabeli Paruntimedb o nazwie dbo.spo_show_all_library_books() wygląda następująco:

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

To zapytanie wypełnia galerię rekordami. Procedury składowane są jednak zachowaniami działania w modelu tabelarycznym. Refresh() Działa tylko z tabelarycznymi źródłami danych i nie działa z procedurami składowanymi. Odśwież galerię po utworzeniu, zaktualizowaniu lub usunięciu rekordu.

Uwaga

Kiedy używasz Submit() na formularzu dla tabelarycznego źródła danych, to efektywnie wywołuje Refresh() pod maską i aktualizuje galerię.

Użyj zmiennej OnVisible we właściwości ekranu i ustaw procedurę składowaną na zmienną.

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

Następnie można ustawić właściwość Items galerii na nazwę zmiennej.

SP_Books

Po utworzeniu, zaktualizowaniu lub usunięciu rekordu za pomocą wywołania procedury składowanej ustaw zmienną ponownie, aby odświeżyć galerię.

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

Użyj Power Automate do wywoływania procedur składowanych

Power Automate najlepiej radzi sobie z działaniami asynchronicznymi. Wywoływanie procedur składowanych w ramach serii wywołań w procesie biznesowym.

Aby wywołać usługę Power Automate, a następnie wywołać procedury składowane, utwórz zmienne wejściowe w ramach przepływu.

Zrzut ekranu przedstawiający wejście Power Automate.

Następnie przekaż zmienne wejściowe do wywołania procedury składowanej.

Wykonanie procedury składowanej

Dodaj ten przepływ Power Automate do swojej aplikacji i wywołaj go. Przekaż opcjonalne argumenty jako rekord "{ ... }”. Poniższy przykład zawiera wszystkie opcjonalne argumenty.

Przepływ Power Automate