DBEXECUTE
DBEXECUTE는 온프레미스 환경과 클라우드 환경의 Infor 상용 응용 프로그램에서만 지원됩니다. Infor 클라우드의 사용자 지정 보고서에서는 DBEXECUTEFIXED만 지원됩니다.
관계형 데이터베이스에서 값을 읽고, 기존 값을 갱신하고 새 값을 삽입할 수 있습니다. DBEXECUTE는 목록이 아닌 데이터베이스에서 직접 작동합니다. 그러므로 RWDB 함수와 달리 데이터베이스에 행을 삽입할 수 있습니다. DBEXECUTE 수식의 매개 변수는 SQL 문입니다.
DBEXECUTE 함수는 0, Null 또는 빈 문자열을 데이터베이스에 쓸 수 있는 네 가지 키 조합을 지원합니다.
- DEL: 0을 씁니다.
- CTRL+DEL: Null을 씁니다.
- BACKSPACE: 빈 문자열("")을 씁니다.
- CTRL+BACKSPACE: 빈 문자열("")을 씁니다.
구문
DBEXECUTE 수식에는 포함되는 매개 변수는 다음과 같습니다.
- 데이터베이스 이름: d/EPM Administration에 정의된 관계형 데이터 연결을 지정합니다.
- 문 선택: 데이터베이스에서 데이터를 검색하는 데 사용됩니다. 표준 SQL SELECT 명령입니다. 새 값이 입력되면 기존 값이 업데이트됩니다. 기존 값이 없으면 INSERT 문이 사용됩니다. 데이터베이스에 쓰기 저장하려면 쿼리가 기본 키를 참조해야 합니다. SQL SELECT는 행에서 여러 값을 반환할 수 있지만 DBEXECUTE는 첫 번째 값을 제외한 모든 값을 무시합니다. 따라서 기본 키가 아닌 값을 반환하고 쓰기 저장하려면 기본 키가 명령문에서 요청한 첫 번째 값이 아닌지 확인해야 합니다.
- Insert 문: 새 데이터를 데이터베이스에 입력하는 방법을 지정합니다. 이는 표준 SQL INSERT 명령입니다.
?
를 INSERT 문에서 문자로 사용할 수 있습니다. DBEXECUTE가 현재 셀에 마지막으로 입력한 값을 나타냅니다.
예제
이 예에서 productid
는 기본 키입니다.
=DBEXECUTE("data_connection", "SELECT productid,FROM products WHERE
productid=123","INSERT INTO products VALUES(’123’,?)")
select 문은 DBEXECUTE 함수가 처리될 때마다 실행됩니다. 예를 들어, 보고서에 표시되는 경우 다른 수식에서 매개 변수로 사용되고 작업 등에서 사용됩니다. 그러나 INSERT 문은 셀에 값을 입력하고 데이터베이스에 해당 값이 없는 경우에만 실행됩니다. 이 기능은 작업을 사용하여 DBEXECUTE를 실행하고 데이터베이스에 데이터를 삽입하거나 다른 SQL 명령을 실행하려는 경우에 사용할 수 있습니다.
예제
이 예에서 productid
는 기본 키입니다. 참조된 제품 ID는 rv_prod이라는 보고서 변수에 저장됩니다.
=DBEXECUTE("data_connection", "SELECT productid, FROM products WHERE
productid="&Reportvariables.rv_prod.text,"INSERT INTO products VALUES(’123’,?)")
작업의 DBEXECUTE
작업에 의해 실행되는 DBEXECUTE 수식에서 INSERT 문 또는 다른 SQL 명령을 실행하려면 select 문 대신 insert 문을 사용합니다.
예제
=DBEXECUTE("data_connection", "INSERT INTO products VALUES (’123’,’[a
value]’)","")