Postgresql 9.2.24 문서 | ||||
---|---|---|---|---|
사설 토토 사이트 : 문서 : 9.2 : 큰 개체 | 토토 꽁 머니 : 문서 : 9.2 : ECPG- C에 포함 된 SQL | 33 장ECPG- 임베디드SQLin c | 다음 |
ECPG는 C ++ 애플리케이션에 대한 제한된 지원이 있습니다. 이것
theECPG사전 처리기가 입력을합니다.C파일. 사용 된 라이브러리 기능의 헤더 파일 선언ECPG생성 |extern "c"...C ++에서 사용될 때 블록이 있으므로 원활하게 작동해야합니다.
일반적으로ECPG사전 처리기는 C 만 이해합니다. 스페셜을 처리하지 않습니다
C ++ 토토 사이트 프로그램에서 임베디드 SQL 코드를 사용하는 안전한 방법섹션 33.13.2약
theECPG사전 처리기가 이해합니다ECPG사전 처리기
예를 들어 다음 경우ECPG사전 처리기는 어떤 선언도 찾을 수 없습니다dbnamein테스트메소드, 오류가 발생합니다
클래스 testcpp
이 코드는 다음과 같은 오류가 발생합니다.
ecpg test_cpp.pgctest_cpp.pgc : 28 : 오류 : 변수 "dbname"이 선언되지 않았습니다
이 범위 문제를 피하려면테스트방법을 로컬 변수를 사용하도록 수정할 수 있습니다.
void testcpp :: test ()
이러한 기술적 한계를 이해하면ECPGC ++의 사전 처리기
세 종류의 파일을 생성해야합니다 : C 파일*.pgc), 헤더 파일 및 C ++
SQL 명령이 포함 된 하위 경로 모듈test_mod.c사전 처리기에 의해.
#include "test_mod.h"
함수의 선언이있는 헤더 파일테스트). 그것테스트.extern선언 주변의 차단
#ifdef __cplusplus
Main
루틴, 그리고 이것
#include "test_mod.h"
토토 사이트 프로그램을 작성하려면 다음과 같이 진행하십시오. 전환하다테스트intest_mod.c실행ECPG및 생성test_mod.o컴파일test_mod.cC 컴파일러와 함께 :
ecpg -o test_mod.c test_mod.pgc
다음, 생성test_cpp.oby테스트C ++와 함께
C ++ -C Test_cpp.cpp -o test_cpp.o
마지막 으로이 객체 파일을 연결하십시오.test_cpp.o및test_mod.o, C ++를 사용하여 하나의 실행 파일로
C ++ test_cpp.o test_mod.o -lecpg -o test_cpp