2017-02-02 4 views
-1

그래서 나는 (참조 : http://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.samptop.doc/doc/r0011556.html)을 (어떻게 연결하고 데이터베이스에서 연결을 해제하려면) 내장 SQL 섹션에서이 샘플 C 나 IBM에서 가져온 ++ 프로그램을임베디드 SQL은

임 사용 데브 C++를 내가 때마다 컴파일 이것은 나에게 오류를 준다. 그것은 말한다 :

[오류]

사람이의 원인을 알고있는 유형의 이름이없는 'EXEC'? 이 헤더 파일이 누락 되었습니까?

EDIT1 : http://www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.sample.doc/doc/cpp/s-dbconn-sqC.html

+0

오류를 재연하기 위해해야 ​​할 일이 너무 적습니다 (예 : 코드가 없습니다 ([http://stackoverflow.com/help/mcve](MCVE) 참조). 오류를 기반으로 SQL 요청을 C++ 코드로 컴파일하려고 시도했다고 가정합니다. – yeputons

+0

모든 사람을 혼란스럽게한다면 죄송합니다. 내가 준 링크에는 컴파일하려고하는 코드가 포함되어 있습니다 (기본 페이지이고 여전히 해당 코드를 탐색해야합니다). 여기 직접 링크가 있습니다 : http://www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.sample.doc/doc/cpp/s-dbconn-sqC.html – HanSoloQue

+0

다른 오류가 발생 했습니까? 아니면 사용자가 제공 한 줄만 전체 컴파일 로그입니까? – yeputons

답변

1

문제는 당신이 링크 된 예 ++ 일반 C되지 않는 것입니다 : 여기에 코드에 대한 직접 링크입니다. 이는 C++에서 IBM's embedded SQL의 예이며, C++에서와 같이 Embedded SQL에 대해 모르는 컴파일러 나 표준 C++ IDE에 입력하기 전에 IBM에서 제공하는 도구로 사전 처리해야합니다. 링크 (강조 광산) 인용 :

건물 Embedded SQL 응용 프로그램 두 가지 전제 조건이 사전 신청 컴파일과를 연결하는 단계를 포함한다.

  1. DB2 프리 D 파일러를 사용하여 Embedded SQL 문을 포함하는 소스 파일 준비.

    프렙 (PRECOMPILE) 명령은 소스 코드를 읽고 분석하고 DB2 런타임 서비스 API 호출로 내장 SQL 문을 변환하는 DB2 사전 처리 컴파일러를 호출하는 데 사용되며, 마침내 새로운 출력을 기록 수정 된 소스 파일. 프리 D 파일러는 인 데이터베이스의 패키지로 함 2 저장된 SQL.에 대한 액세스 플랜을 작성합니다.

  2. 응용 프로그램의 명령문을 대상 데이터베이스에 바인드합니다.

    바인딩은 사전 컴파일 (PREP 명령) 중에 기본적으로 수행됩니다. Y 인딩이 지연 될 경우 (예 : 나중에 BIND 명령을 실행하는 경우) BINDFILE 옵션은 YYY 시간에 바인드 파일이 생성되도록 지정해야합니다. 당신이 미리 컴파일 및 임베디드 SQL 응용 프로그램을 결합하면

, 컴파일 할 준비가 호스트 언어 별 개발 도구를 사용하여 링크.

따라서 일부 IBM 툴 (아마도 PREP이라고 함)을 사용하여 예제를 사전 처리해야만 유효한 C++ 코드를 얻을 수 있습니다. Dev C++을 자동으로 사용하는 것이 쉽거나 가능한지 확실하지 않습니다.

+0

입니다. 명확한 설명 주셔서 감사합니다. DevC++에서 프리 컴파일을 할 수 있는지 연구 해 보겠습니다. – HanSoloQue

+0

@HanSoloQue는 "pre-compilation hook"또는 "pre-compilation action"과 같은 것을 찾으려고합니다. – yeputons

+0

'prep'는 DB2 CLP 명령이므로이를 위해 DB2 클라이언트가 설치되어 있어야합니다. 설치에는 Embedded SQL 프로그램을 빌드하기위한 샘플 스크립트가 들어 있습니다. – mustaccio