카테고리 없음

[PostgreSQL] CSV 파일( Excel 파일 ) PostgreSQL DB 에 입력하는 방법 2

성엽이 2014. 3. 18. 11:14

Shell 에서 직접 SQL 명령어로 사용하면 되고,


mfc와 연동하여 CSV 파일에 데이터를 SQL 명령어를 사용했을때 되지 않던 문제를 해결했다.( 무려 하루나 걸려서 .. 한줄 추가했는데 ..ㅠㅠ)



 소스발췌

 /* Establish connection to database */

PGconn* DBConnection::ConnectDB()
{
  PGconn *conn = NULL;

  // Make a connection to the database
  conn = PQconnectdb("user=postgres password=ugchul dbname=excelmatching hostaddr=127.0.0.1 port=5432");

  // Check to see that the backend connection was successfully made 
    if (PQstatus(conn) != CONNECTION_OK)
    {
        printf("Connection to database failed");
        CloseConn(conn);
    }
  else
  {
    ///////////////////////////////////////////////////////////////////////////////////////////////////////
    // PQsetClientEncoding은 문자열에 관한 클라이언트쪽 인코딩 설정하는 부분인데 기본값은 UTF-8을 가집니다.
    // UHC는 CP949, EUC-KR인듯 하네요. 유니코드나 인코딩 설정하기 귀찮아서 그냥 UHC로 지정
    PQsetClientEncoding(conn, "UHC");
  }

  //printf("Connection to database - OK\n");

  return conn;

} 




///////////////////////////////////////////////////////////////////////////////////////////////////////

// PQsetClientEncoding은 문자열에 관한 클라이언트쪽 인코딩 설정하는 부분인데 기본값은 UTF-8을 가집니다.

// UHC는 CP949, EUC-KR인듯 하네요. 유니코드나 인코딩 설정하기 귀찮아서 그냥 UHC로 지정


PQsetClientEncoding(conn, "UHC");


// 위의 단 한줄 추가, SQL 명령어 COPY는 보통 서버에서 클라이언트로 복사/붙여넣기를 사용하는데 이때 클라이언트 쪽의 문자열 인코딩을 설정해주어야한다.

// 현재 짜던 소스가 EUC-KR 을 포함하고 있어서 설정을 바꿔 주었더니 됬다.


억울..