2012-09-21 4 views
4

Visual C++ 2010 Express에서 Postgres 데이터베이스에 액세스하려고합니다. 내 컴퓨터에 둘 다 있지만 SQL 호출이 전혀 작동하지 않습니다. 나는 많은 사이트를 수색했다. 필자는이 버전의 Express에는 비표준 버전 (특히 Visual C++ 2008)과 같은 기본 데이터베이스 연결이 없다고 생각합니다.Visual C++ Express 2010에서 libpq에 연결하여 사용

찾을 수있는 유일한 링크는 다음과 같으며 Visual C++ Express의 프로젝트 속성 영역을 수정 한 것입니다.

http://www.askyb.com/cpp/c-postgresql-example/

나는 오류가이 기능을 찾을 수 없음을 나타내는 얻을 해당 웹 사이트의 C++ 코드를 실행하려고

.

내가 잘못하고있는 것에 대한 아이디어가 있습니까? Postgres DB에 연결하기 위해 Visual C++ Express 2010 이외의 다른 것을 사용하는 것이 더 좋을까요? 다른 Express 버전 중 하나? 일반 (비 표현) Visual C++?

감사

+0

Visual C++ Express 2010으로 충분합니다. 기본적으로 튜토리얼에서 언급 한 것처럼 [pgstream] (https://github.com/manitou-mail/pgstream)을 사용하여 저에게 맞습니다. Visual에서 복사하여 붙여 넣은 실제 오류 메시지를 질문에 추가해야합니다. –

+0

당신이 질문하는 것은 당신이 ok를 만들고 있지만 실행 시간이 kerflush로 바뀌 었다는 것을 나타냅니다. 정확합니다 (그리고 당신이 보는 오류 메시지를 제공 할 수 있습니까?). – WhozCraig

+0

프로젝트 구성 (또는 libpq이 언급 된 부분)과 오류 메시지의 정확한 텍스트 *를 보여주십시오. 그들을 복사하여 붙여 넣으십시오. –

답변

2

PostgreSQL 및 libpq로 작업하는 경우 libpqtypeslibpqxx에 관심이있을 수 있습니다. 첫 번째는 libpq의 데이터 값에 대한 액세스를 크게 단순화하고 후자는 C++ 친화적 인 인터페이스를 제공합니다. 가장 가능성이 오류에 관해서는

:

  • 귀하는 컴파일 타임 또는 링크시 실패의 경우 경로 또는 링크 라이브러리 경로가 잘못 포함한다; 또는
  • 런타임시 실패하면 PATH에 libpq가 포함되지 않습니다.
1

대부분의 경우 문제가 셋업이다 (당신이 실제 오류 메시지를 제공하지 않았다). 올바른 헤더 ("include") 디렉토리와 라이브러리 디렉토리를 추가해야합니다. 튜토리얼에서 복사 한 경우 실제로 파일 (.h 및 .lib 파일)이있는 실제 위치를 가리 키도록하십시오.

+0

나는 그가 잘 컴파일하는 것 같아요. 그의 질문을 읽은 후, 그는 런타임 문제가있는 것으로 보인다. (즉, 비 정적 라이브러리 모델을 사용하고 있다면 그의 프로그램이 DLL을 지원할 경로가 없다.) – WhozCraig

1

당신은 MSVC와 libpq를 재 컴파일 할 필요가있다 (NMAKE/F win32.mak 모두), 그 후, 당신이 공용 언어 런타임 지원을 해당 라이브러리를 사용하는 프로젝트를 설정하고 변경해야합니다 (/ CLR) clr/pure가 아닙니다.

+0

제안 해 주셔서 감사합니다! postgres 9.2를 사용했기 때문에 디렉토리에 약간의 변경 사항이 있었지만 libq를 다시 컴파일 할 필요가 없었습니다 .9.2에는 windowws가있을 수 있습니다. – Jim

관련 문제