database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 6650 게시물 읽기
No. 6650
vc api로 응용프로그램 만들기 좀 도와주세요
작성자
심상호(shimsh)
작성일
2006-04-27 11:59
조회수
3,624

vc++6.0 api로 작업하고 있습니다.

libpq.dll를 이용해서 클라이언트 응용프로그램을 만들어 보려고 합니다.

며칠 째 진전은 없고 헤매고 있습니다.

누구 구체적으로 좀 가르쳐 주세요.

lib,dll 생성에서 결합까지.

간단한 사용예도 있으면 더 좋고요

하도 힘들어 포기하려다가

마지막 구원의 손길을 뻗습니다.

의욕만 있는 초보가

이 글에 대한 댓글이 총 3건 있습니다.

 

우선 환경설정을 하셔야 컴파일이 됩니다.

 

간략히 설명드리자면,

[Tools] -> [Options] -> [Directories] 에서

<include files> 및 <Library files>에 PostgreSQL에서 사용하는

경로를 포함시키셔야 합니다.

 

제 경우에는

<include> C:\PROGRAM FILES\POSTGRESQL\8.1\INCLUDE

<library> C:\PROGRAM FILES\POSTGRESQL\8.1\LIB\MS

 

그리고 마지막으로 C:\PROGRAM FILES\POSTGRESQL\8.1\bin

디렉토리의 dll 파일들을 전부 Windows\system32 디렉토리에

복사하셔야 합니다.

 

이것으로 사용가능한 설정은 완료가 됩니다.

 

여기는 파일 업로드가 되지 않아서 <Files>란에 예제를 하나

올려 놓았습니다. 참고하세요^^

김대현(duckking)님이 2006-04-27 18:29에 작성한 댓글입니다.
이 댓글은 2006-04-27 22:28에 마지막으로 수정되었습니다.

답변주신 것 감사합니다.

그런데 제가 하는것은 MFC가 아니라서 잘 모르겠습니다.

실험을 통해서 짠것인데 올려보겠습니다.

 

vc++ 6.0 api입니다.

 

#include <windows.h>
#include <stdio.h>
#include "libpq-fe.h"

    PGconn *conn;
    PGresult *res;
    char query[128] = "select * from zipcode";
    char *pghost, *pgport, *pgoptions, *dbname,
         *pguser, *pgpass;


LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPCTSTR lpszClass="First";

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
    ,LPSTR lpszCmdParam,int nCmdShow)
{
 HWND hWnd;
 MSG Message;
 WNDCLASS WndClass;
 g_hInst=hInstance;
 
 WndClass.cbClsExtra=0;
 WndClass.cbWndExtra=0;
 WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
 WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
 WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
 WndClass.hInstance=hInstance;
 WndClass.lpfnWndProc=(WNDPROC)WndProc;
 WndClass.lpszClassName=lpszClass;
 WndClass.lpszMenuName=NULL;
 WndClass.style=CS_HREDRAW | CS_VREDRAW;
 RegisterClass(&WndClass);

 hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
    NULL,(HMENU)NULL,hInstance,NULL);
 ShowWindow(hWnd,nCmdShow);
 
 while(GetMessage(&Message,0,0,0)) {
  TranslateMessage(&Message);
  DispatchMessage(&Message);
 }
 return Message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
    pghost = "localhost";
    pgport = "5432";
    pgoptions = NULL;
    dbname = "postgres";

    pguser = "postgres";
    pgpass = "111111";

 switch(iMessage) {
    case WM_CREATE:
        conn = PQsetdbLogin(pghost, pgport, pgoptions, NULL,dbname, pguser, pgpass);

    // 만약 연결에 오류가 발생했다면
    // 오류메시지를 출력한다음에 종료한다.
    if (PQstatus(conn) == CONNECTION_BAD)
    {
        fprintf(stderr, "%s", PQerrorMessage(conn));
        exit(0);
    }

 
 
 case WM_DESTROY:
  PostQuitMessage(0);
  return 0;
 }
 return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

 

에러부분

 

--------------------Configuration: pg1 - Win32 Debug--------------------
Linking...
pg1.obj : error LNK2001: unresolved external symbol _PQerrorMessage
pg1.obj : error LNK2001: unresolved external symbol _PQstatus
pg1.obj : error LNK2001: unresolved external symbol _PQsetdbLogin
Debug/pg1.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

pg1.exe - 4 error(s), 0 warning(s)

 

김대현님이 하는것 처럼

<include> C:\PROGRAM FILES\POSTGRESQL\8.1\INCLUDE

<library> C:\PROGRAM FILES\POSTGRESQL\8.1\LIB\MS

C:\PROGRAM FILES\POSTGRESQL\8.1\bin

했습니다.

 

심상호(shimsh)님이 2006-04-28 10:23에 작성한 댓글입니다.

해결이 됐습니다.

프로젝트>셋팅>링크>오브젝트/라이브러리 모듈에서 libpq.lib를 추가하니 됩니다.

 

심상호(shimsh)님이 2006-04-28 12:04에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6655An error occured in the logger.ERROR: relation "activity_log" does not exist [1]
박진석
2006-05-02
3141
6654유닉스 타임 [3]
김명범
2006-05-02
2960
6653파라메타 없는 함수 만드는 법 ?? [4]
장창원
2006-05-02
3144
6650vc api로 응용프로그램 만들기 좀 도와주세요 [3]
심상호
2006-04-27
3624
6648LDAP기능 사용해보신분. [1]
조우현
2006-04-26
2474
6647테이블 스페이스 생성에 대한 질문.. [2]
채민석
2006-04-26
3531
6646이 sql이 의미하는 바를 좀 알려주세요. [1]
YS
2006-04-26
2817
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다