Udostępnij przez


Połączenie z programem SQL Server z Power Apps – przegląd

Istnieją różne sposoby nawiązywania połączenia z danymi w programie SQL Server w aplikacji przy użyciu formuł Power Fx. Możesz uzyskać bezpośredni dostęp do danych lub użyć widoku lub procedur przechowywanych do tworzenia, aktualizowania lub usuwania danych w aplikacji.

Wymagania wstępne

Aby uzyskać bezpośredni dostęp do danych, możesz utworzyć aplikację Zacznij od danych dla danych serwera SQL. Ta metoda pozwala uzyskać podstawową, działającą aplikację, którą można modyfikować za pomocą widoków i procedur składowanych.

  1. Zaloguj się do Power Apps i przejdź do strony Aplikacje.

  2. Wybierz pozycję Nowa aplikacja>Zacznij od danych.

    Zrzut ekranu pokazujący, jak utworzyć aplikację, zaczynając od danych w menu Nowa aplikacja.

  3. Na stronie Rozpoczynanie od danych wybierz pozycję Połącz dane zewnętrzne.

  4. W sekcji Wybierz zestaw danych do rozpoczęcia wybierz Z SQL.

    Jeśli masz istniejące połączenie SQL Server, zostanie ono załadowane.

    Uwaga

    Jeśli nie masz jeszcze połączenia z serwerem SQL, zostaniesz poproszony o jego utworzenie.

  5. Wybierz połączenie SQL.

  6. Wprowadź nazwę Serwera i Nazwy bazy danych, a następnie wybierz Połącz. Wybierz tabelę z wyświetlonej listy tabel.

    Zrzut ekranu przedstawiający stronę Utwórz aplikację, na której można wybrać połączenie SQL Server, w tym tabelę.

    Uwaga

    Jednocześnie jest wyświetlane tylko jedno połączenie. Aby użyć innego połączenia, wybierz menu przepełnienia ... w połączeniu SQL, a następnie znajdź nowe połączenie lub utwórz nowe połączenie SQL.

  7. Wybierz utwórz-aplikację.

Dostęp do danych

Po połączeniu aplikacji z serwerem SQL Server można uzyskać dostęp do danych: Dostęp do danych w SQL Server.

Wyświetl wyniki

Aby wyświetlić wyniki zapytań SQL, zobacz: Wyświetl wyniki w SQL Server.

Mapowanie typu danych Power Apps

SQL Server Power Apps
bigint, decimal, , , intmoneynumericsmallintsmallmoneytinyintfloatreal Number
char, , nchar, varchar, nvarchar, , textntext Tekst
bit logiczny
date, , datetime, datetime2, smalldatetime, , datetimeoffsettime DateTime
uniqueidentifier Przewodnik

Uwaga

Jeśli typ danych programu SQL Server nie jest wyświetlany w poprzedniej tabeli, ten typ danych nie jest obsługiwany. Nieobsługiwane typy danych obejmują następujące przykłady: binary(), , varbinary(), cursorhierarchyidimagerowversionsql_variant xmlTypy geometrii przestrzennej, Typy geografii przestrzennej i tabela. Ponadto "tinyint" i "smallint" nie są obsługiwane jako klucze podstawowe.

Funkcje i operacje usługi Power Apps delegowalne do programu SQL Server

Usługa Power Apps może delegować operacje zapytań Power Fx (na przykład Filtr) do źródła danych zaplecza na potrzeby przetwarzania. Delegowanie umożliwia usłudze danych zaplecza (na przykład programOWI SQL Server) wykonywanie zadań filtrowania, dzięki czemu tylko kilka rekordów musi zostać przeniesionych na urządzenie.

W tej tabeli pokazano, które operacje można delegować do programu SQL Server według typu danych. Wyrażenia połączone z elementami And, Ori Not są delegowalne.

Operacja lub funkcja Number Tekst logiczny DateTime Przewodnik
*, +, -, / Tak - - Nie. -
<, , <=, , >>= Tak Nie. Nie. Tak -
=, <> Tak Tak Tak Tak Tak
Average Tak - - - -
EndsWith - Tak [1] - - -
Filter Tak Tak Tak Tak [2] Tak
In (podciąg) - Tak [3] - - -
IsBlank [4] Nie. Nie. Nie. Nie. Nie.
Len (długość) - Tak [5] - - -
Lookup Tak Tak Tak Tak Tak
Max Tak - - Nie. -
Min Tak - - Nie. -
Search Nie. Tak Nie. Nie. -
Sort Tak Tak Tak Tak -
SortByColumns Tak Tak Tak Tak -
StartsWith - Tak [6] - - -
Sum Tak - - - -
UpdateIf, RemoveIf [7] Tak Tak Tak Tak Tak

Notatki

  1. Obsługiwane dla elementu (EndsWith(\<column>, "string value")) , ale nie dla (EndsWith("string value", \<column>)). Jeśli kolumna char(10) ma wartość "hello", EndsWith(\<column>, "llo") zwraca wartość false zgodnie z projektem. Kolumna char(10) ma 10 znaków.

  2. Filtry dat bezpośrednich nie działają dla programu SQL Server z lokalną bramą danych. Można jednak utworzyć kolumnę obliczeniową, która działa. Możesz na przykład utworzyć następujące elementy:
    ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
    Następnie przefiltruj kolumnę liczb obliczeniową.

  3. Obsługiwane w przypadku programu ("string value" in \<column>), ale nie dla (\<column> in "string value")programu .

  4. Wyrażenie, takie jak Filter('[dbo].[MyOrders]', !IsBlank(CustomerId)) nie deleguje do serwera. Można jednak użyć wyrażenia takiego jak Filter('[dbo].[MyOrders]', CustomerId <> Blank()), które deleguje do serwera i jest semantycznie zamykane. Różnica polega na tym, że drugie wyrażenie nie będzie traktować pustego ciągu ("") jako pustego. Mimo że wyrażenia nie są równoważne, te ostatnie mogą działać dla Twoich celów. Nie można użyć tej metody dla typu danych Guid.

  5. Usługa Power Apps deleguje Len funkcję, ale zachowanie może nie działać zgodnie z oczekiwaniami. W programie SQL Server kolumna char(10) o wartości "hello" zawsze ma długość 10. Jednak usługa Power Apps traktuje ten ciąg jako o długości 5, co może powodować rozbieżności i zamieszanie. Nie używaj go char/nchar na serwerze SQL, ale zamiast tego używaj go.varchar/nvarchar

  6. Obsługiwane dla elementu (StartsWith(\<column>, "string value")), ale nie dla (StartsWith("string value", \<column>))

  7. UpdateIf i RemoveIf działają lokalnie, ale symulują delegowanie do limitu 500/2000 rekordów. Kolejno obniżają rekordy poza limitem rekordów innych niż delegowanie 500/2000. Rekordy spełniające warunek If są zbierane. Ogólnie rzecz biorąc, maksymalnie 500/2000 rekordów są zbierane oddzielnie, a następnie zmieniane na wykonanie. Można jednak zaktualizować więcej rekordów, jeśli istniejąca lokalna pamięć podręczna danych jest duża, ponieważ funkcja może mieć dostęp do większej liczby rekordów na potrzeby oceny.