이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 34.13. C ++ 토토 프로그램버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

33.13. C++토토 사이트 프로그램

ECPG는 C ++ 애플리케이션에 대한 제한된 지원이 있습니다. 이것

theECPG사전 처리기가 입력을합니다.C파일. 사용 된 라이브러리 기능의 헤더 파일 선언ECPG생성 |extern "c"...C ++에서 사용될 때 블록이 있으므로 원활하게 작동해야합니다.

일반적으로ECPG사전 처리기는 C 만 이해합니다. 스페셜을 처리하지 않습니다

C ++ 토토 사이트 프로그램에서 임베디드 SQL 코드를 사용하는 안전한 방법섹션 33.13.2

33.13.1. 호스트 변수 범위

theECPG사전 처리기가 이해합니다ECPG사전 처리기

예를 들어 다음 경우ECPG사전 처리기는 어떤 선언도 찾을 수 없습니다dbnamein테스트메소드, 오류가 발생합니다

클래스 testcpp

이 코드는 다음과 같은 오류가 발생합니다.

ecpg test_cpp.pgctest_cpp.pgc : 28 : 오류 : 변수 "dbname"이 선언되지 않았습니다

이 범위 문제를 피하려면테스트방법을 로컬 변수를 사용하도록 수정할 수 있습니다.

void testcpp :: test ()

33.13.2. C ++ 토토 사이트 프로그램 개발

이러한 기술적 한계를 이해하면ECPGC ++의 사전 처리기

세 종류의 파일을 생성해야합니다 : C 파일*.pgc), 헤더 파일 및 C ++

테스트

SQL 명령이 포함 된 하위 경로 모듈test_mod.c사전 처리기에 의해.

#include "test_mod.h"
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.otest_mod.o, C ++를 사용하여 하나의 실행 파일로

C ++ test_cpp.o test_mod.o -lecpg -o test_cpp