Power Fx 수식을 사용하여 앱의 SQL Server에서 데이터에 연결하는 방법에는 여러 가지가 있습니다. 데이터에 직접 액세스하거나 보기 또는 저장 프로시저를 사용하여 앱에서 데이터를 생성, 업데이트 또는 삭제할 수 있습니다.
사전 요구 사항
데이터에 직접 액세스하려면 SQL Server 데이터에 대한 데이터로 시작 앱을 만들 수 있습니다. 이 방법을 사용하면 보기 및 저장 프로시저를 사용하여 수정할 수 있는 작동하는 기본 앱을 가져올 수 있습니다.
Power Apps에 로그인하고 앱 페이지로 이동하세요.
새 앱>데이터로 시작을 선택합니다.
데이터로 시작 페이지에서 외부 데이터 연결을 선택합니다.
시작할 데이터 세트 선택에서 SQL에서를 선택합니다.
기존 SQL 서버 연결이 있는 경우 로드됩니다.
참고
SQL Server 연결이 아직 없는 경우 연결을 만들라는 메시지가 표시됩니다.
SQL 연결을 선택하세요.
서버 이름과 데이터베이스 이름을 입력한 후 연결을 선택하세요. 표시되는 테이블 목록에서 테이블을 선택합니다.
참고
한 번에 하나의 연결만 표시됩니다. 다른 연결을 사용하려면 SQL 연결에서 ... 오버플로 메뉴를 선택한 다음, 새 연결을 찾거나 새 SQL 연결을 만드세요.
앱 만들기를 선택합니다.
액세스 데이터
앱이 SQL Server에 연결되면 SQL Server에서 데이터에 액세스 데이터에 액세스할 수 있습니다.
결과 보기
SQL 쿼리의 결과를 보려면 SQL Server에서 결과 보기를 참조하십시오.
Power Apps 데이터 형식 매핑
| SQL Server | 파워 앱스 (Power Apps) |
|---|---|
bigint, decimal, int, money, numeric, smallint, smallmoneytinyint, floatreal |
Number |
char, nchar, varchar, nvarchar, textntext |
문자 메시지 |
bit |
불리언 (Boolean) |
date, datetime, datetime2, smalldatetime, datetimeoffsettime |
DateTime |
uniqueidentifier |
가이드 |
참고
SQL Server 데이터 형식이 이전 테이블에 표시되지 않는 경우 해당 데이터 형식은 지원되지 않습니다.
지원되지 않는 데이터 형식에는 다음 예제가 포함됩니다. binary(), , varbinary(), imagecursor, rowversionhierarchyid, , sql_variant xml공간 기하 도형 형식, 공간 지리 형식 및 테이블. 또한 'tinyint' 및 'smallint'는 기본 키로 지원되지 않습니다.
SQL Server에 위임할 수 있는 Power Apps 함수 및 작업
Power Apps는 처리를 위해 Power Fx 쿼리 작업(예: 필터)을 백 엔드 데이터 원본에 위임할 수 있습니다. 위임을 사용하면 백 엔드 데이터 서비스(예: SQL Server)가 필터링 작업을 수행하여 몇 개의 레코드만 디바이스로 전송해야 합니다.
이 표에서는 데이터 형식별로 SQL Server에 위임할 수 있는 작업을 보여 줍니다. 에 조인Or된 And식이며 Not 위임할 수 있습니다.
| 작업 또는 함수 | Number | 문자 메시지 | 불리언 (Boolean) | DateTime | 가이드 |
|---|---|---|---|---|---|
*, +, -, / |
Yes | - | - | 아니오 | - |
<, <=, >>= |
Yes | 아니오 | 아니오 | Yes | - |
=, <> |
Yes | Yes | Yes | Yes | Yes |
Average |
Yes | - | - | - | - |
EndsWith |
- | 예 [1] | - | - | - |
Filter |
Yes | Yes | Yes | 예 [2] | Yes |
In (부분 문자열) |
- | 예 [3] | - | - | - |
IsBlank [4] |
아니오 | 아니오 | 아니오 | 아니오 | 아니오 |
Len (길이) |
- | 예 [5] | - | - | - |
Lookup |
Yes | Yes | Yes | Yes | Yes |
Max |
Yes | - | - | 아니오 | - |
Min |
Yes | - | - | 아니오 | - |
Search |
아니오 | Yes | 아니오 | 아니오 | - |
Sort |
Yes | Yes | Yes | Yes | - |
SortByColumns |
Yes | Yes | Yes | Yes | - |
StartsWith |
- | 예 [6] | - | - | - |
Sum |
Yes | - | - | - | - |
UpdateIf, RemoveIf [7] |
Yes | Yes | Yes | Yes | Yes |
비고
(EndsWith(\<column>, "string value"))지원되지만 지원되지는 않습니다(EndsWith("string value", \<column>)). char(10) 열의 값이 "hello"EndsWith(\<column>, "llo")인 경우 의도적으로 false를 반환합니다. char(10) 열에는 10자가 있습니다.온-프레미스 데이터 게이트웨이가 있는 SQL Server에서는 직접 날짜 필터가 작동하지 않습니다. 그러나 작동하는 계산 열을 만들 수 있습니다. 예를 들어 다음을 만들 수 있습니다.
ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
그런 다음 계산된 숫자 열을 필터링합니다.에 대해
("string value" in \<column>)지원되지만 지원되지는 않습니다(\<column> in "string value").같은
Filter('[dbo].[MyOrders]', !IsBlank(CustomerId))식은 서버에 위임되지 않습니다. 그러나 서버에 위임하고 의미상 닫는 식과 같은Filter('[dbo].[MyOrders]', CustomerId <> Blank())식을 사용할 수 있습니다. 차이점은 두 번째 식이 빈 문자열("")을 빈 문자열로 처리하지 않는다는 것입니다. 식은 동일하지 않지만 후자는 사용자의 용도로 작동할 수 있습니다. Guid 데이터 형식에는 이 메서드를 사용할 수 없습니다.Power Apps는 함수를
Len위임하지만 동작이 예상대로 작동하지 않을 수 있습니다. SQL Server에서 값이 "hello"인 char(10) 열의 길이는 항상 10입니다. 그러나 Power Apps는 해당 문자열의 길이가 5인 것으로 간주하여 불일치 및 혼동을 일으킬 수 있습니다. SQL Server에서는 사용하지char/nchar말고 대신 사용합니다varchar/nvarchar.지원되는 대상
(StartsWith(\<column>, "string value"))은 아니지만(StartsWith("string value", \<column>))UpdateIf 및 RemoveIf는 로컬에서 작동하지만 500/2000 레코드 제한으로 위임을 시뮬레이션합니다. 비 위임 500/2000 레코드 제한을 초과하여 레코드를 연속적으로 줄입니다. If 조건을 충족하는 레코드가 수집됩니다. 일반적으로 최대 500/2000개의 레코드가 별도로 수집된 다음 실행당 변경됩니다. 그러나 함수가 평가를 위해 더 많은 레코드에 액세스할 수 있으므로 기존 로컬 데이터 캐시가 큰 경우 더 많은 레코드가 업데이트될 수 있습니다.