이 글의 목적은 외부에 있는 오라클 DB에 ODBC를 이용하여 접근하기 위한 세팅이다.

오라클은 뭘해도 귀찮다.역시 독보적인 기업이란 것의 이름만큼 독단적인 면이 있는 것 같다.
MFC에서 지원하는 쉬운 ODBC세팅들을 바로 이용할 수 없고 Oracle 서버와 연동하기 위한 Instant Client Package를 설치해야한다. Basic 패키지, ODBC 패키지 두번이나 설치해야 MFC에서 ODBC를 이용하여 개발이 가능하다.

물론, OCI(Oracle Communication Interface)를 이용한 가장 빠른 방법이 있지만 개발 시간이 더 걸리기만 하는 불필요한 작업인 것 같다. DB활용도가 높은 편이 아니다면 역시 쉬운 ODBC 강추, 나중에 DB교체도 쉽기 때문에 ODBC로 개발하기로 하였다.

예전에는 Oracle Client를 깔아야만 오라클과 연동이 가능하였지만 현재는 Instant Client만으로도 쉽게 접속이 가능하다. 하지만 관련자료가 조금(?) 부족해서 힘들었다.



1. Instant Client 의 다운로드

다운주소 : http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html

  • instantclient-basic-win32-11.1.0.7.0.zip (46,734,555 bytes)
  • instantclient-odbc-win32-11.1.0.7.0.zip (728,899 bytes)

  위의 두 파일을 공통된 폴더에 압축을 푼다. 기본적으로 위의 버젼일 경우에는 instantclient_11_1 을 기준으로 풀리게 되어있다. 나중에 환경변수 설정을 용이하게 C:\Oracle\instantclient_11_1 로 해제하여 모아두었다.


2. 오라클 ODBC 드라이버의 설치

  odbc_install.exe 파일을 클릭하면 쉽게 ODBC드라이버가 자동으로 설치된다. 실패할 경우에는 dll 파일이 정상적으로 존재하는지 확인하고 부족하다면 새로 다운 받아 설치하자.

  설치 후엔 ODBC드라이버에서 아래와 같이 "Oracle in instantclient_11_1" 이 뜨는지 확인하면 설치완료.
  ( 제어판 > 관리도구 > 데이터원본(ODBC) > 드라이버 )

Oracle ODBC 드라이버



3. 환경변수 설정

  basic 패키지를 사용하기 위해서는 환경변수의 설정이 필요하다. 윈도우 환경변수 설정란으로 들어가서 아래와 같이 설치된 위치를 적어주자.

  • Path                   C:\Oracle\instantclient_11_1
  • NLS_LANG           KOREAN_KOREA.AL32UTF8
  • ORACLE_HOME    C:\Oracle\instantclient_11_1
  • TNS_ADMIN         C:\Oracle\instantclient_11_1


4. tnsnames.ora 설정

  tnsnames.ora는 PC에서 Oracle로 붙기 위한 설정 파일이라고 생각하면 된다. 아래의 샘플을 보고 자신의 서버에 맞게 세팅하자. 아래의 설정은 외부서버에 접속하기 위한 기본세팅.

 ORCL=
 (DESCRIPTION=
  (ADDRESS_LIST=
   (ADDRESS=(PROTOCOL=TCP)(HOST=아이피)(PORT=포트))
  )
  (CONNECT_DATA=
   (SERVER=DEDICATED)
   (SID=SID네임)
  )
 )

5. ODBC의 추가

  위의 ORCL은 tnsnames.ora에서 사용하는 이름이다. 이것을 ODBC에서 실질적으로 사용하는 시스템DSN으로 바꾸기 위해서 ODBC를 추가해준다. 기본적으로 시스템에서 사용하기 때문에 시스템DNS에 아래와 같이 새로 추가한다.

ODBC Oracle


6. 사용하기

사용하기는 쉽다. 역시 생각되로 그냥 CDatabase 로 ODBC 프로그래밍을 한다면 쉽게 처리가 된다.
자세한 정보는 인터넷 검색-ㅅ-;


2009/11/04 12:07 2009/11/04 12:07
PB 이 작성.

당신의 의견을 작성해 주세요.

말도 안되는 에러가 발생했다.
딱 2시간 전에도 컴파일 되던 동일한 프로젝트가 VS2008에서 에러가 발생한 것이다.
에러메시지는 아래와 같다.

'cmd.exe'을(를) 생성하는 동안 오류가 발생했습니다.

살다가 저런 오류는 본 적도 없다.
여러 사이트를 검색 후 찾은 것은 두가지의 해결방법!



1. 매니페스트(Manifest)의 사용으로 발생 가능
프로젝트 속성 > 매니페스트 도구 > 입력 및 출력 >패니페스트 포함 > 아니요
'예'를 '아니요'로 변경하면 다시 컴파일이 가능하다.



2. 환경변수의 변경

아마도 원인은 NSIS일 것이라고 생각된다. 이후 변해버렸다고 하는 사람들이 몇명 있다.

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\IDE;C:\Program Files\TortoiseSVN\bin;C:\Program Files\NSIS;

위와 같이 VS8의 주소란에 \\으로 되어있어서 제대로 파싱을 못 하는 경우가 있다. 이 경우에는 아래와 같이 \\을 \로 변경하면 정상적으로 컴파일이 된다.

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files\TortoiseSVN\bin;C:\Program Files\NSIS;


아직도 이 현상의 범인은 알 수가 없지만 새로운 에러 상황에 대한 대처로는 충분할 것이라고 생각한다.

2009/11/02 19:58 2009/11/02 19:58
PB 이 작성.

당신의 의견을 작성해 주세요.

 졸업작품으로 영상처리 구현을 할 필요가 있어서 생판 첨해보는 영상처리를 당장 이번에 오는 월요일까지 만들어내야만 했다. 일단 간단한 프로토타입 프로그램이라도 만들어내라니깐 빨리 만들기 위해서 영상처리 관련 정보를 찾다보니 제일 많이 걸리는 것이 OpenCV였다.

 솔직히 내가 사용하는 것이 어디서 만들던 그런 것은 중요한 것이 아니다.  제작해주신 많은 오픈소스 업체와 관련자 분들께 죄송합니다 (__) 꾸벅, 어쩔 수 없잖아. 바쁜데 ㅠㅠ
Download : http://sourceforge.net/projects/opencvlibrary

위의 주소에서 일단 OpenCV 라이브러리를 다운 받는다.  역시 윈도우가 이런 면에서 편한 것 같다. 부담없이 윈도우용으로 패키지 된 OpenCV_1.1pre1a.exe (오늘 2009.05.15) 을 다운 받아서 바로 설치하였다.

[ Visual Studio 6.0 설정]

1. VS6.0 Option 설정 (한번만 하면 됨!)

1) Tools > Options > Directories(탭) 을 선택한다. 그리고 아래와 같이 Show directores for: 의 값을 Include files로 선택한다.

#01 VS6.0 Option 설정 - Include files 

그리고 아래의 값들을 추가시켜준다.
"C:\Program Files\OpenCV\cv\include"
"C:\Program Files\OpenCV\cxcore\include"
"C:\Program Files\OpenCV\otherlibs\highgui"
"C:\Program Files\OpenCV\cvaux\include"
"C:\Program Files\OpenCV\otherlibs\_graphics\include"

2) Show directores for: 의 값을 Library files

#02 VS6.0 Option 설정 - Library files

위의 화면처럼 아래의 값을 추가하여준다.
"C:\Program Files\OpenCV\lib"

3) Show directores for: 의 값을 Source files
"C:\Program Files\OpenCV\cv\src"
"C:\Program Files\OpenCV\cxcore\src"
"C:\Program Files\OpenCV\cvaux\src"
"C:\Program Files\OpenCV\otherlibs\highgui"
"C:\Program Files\OpenCV\otherlibs\_graphics\src"

위와 동일하게 설정하면 된다.

#03 VS6.0 Option 설정 - Source files 



2. VS6.0 프로젝트 설정 (OpenCV를 사용하는 프로젝트마다 필요)

#04 VS6.0 Project 설정

Project > Settings > Link(탭) 으로 들어가서 Object/library modules 에
cv.lib cxcore.lib highgui.lib

을 넣어준다. 그리고 이제 프로그래밍을 하면 된다^ㅡ^v

 

3. 간단한 소스




4. 에러(0xc0150002)의 발생

#05 OpenCV 컴파일&실행 중 에러

위의 세팅되로 다 하였지만 에러가 떠버렸다. 이건 뭥미! (-- );

(0xc0150002) 에러의 발생 알아보니 OpenCV_1.1pre1a.exe 버젼의 경우에는 Visual Studio 2005를 기반으로 개발되어있다고 한다.  그래서 DLL 파일 자체게 2005에서 만들어져서 VS6.0에서 사용할 때는 "초기화 할 수 없습니다" 라는 에러를 발생한다.

-0- 너무 최신 버젼(?)이라서 생기는 단점이다. 이를 해결하기 위해서는 아래에 MS사에서 제공되는 패치를 설치하면 해결할 수 있다.

Download : http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=en

그렇게 패치까지 하고 나니깐 성공적으로 컴파일이 되었다 :)

#06 OpenCV 이미지 뛰우기 성공

드디어 캠을 통한 영상처리의 첫 발걸음 중... OpenCV를 설치하는 순간이다!
2009/05/15 18:22 2009/05/15 18:22
PB 이 작성.

당신의 의견을 작성해 주세요.

  1. Comment RSS : http://pureholic.net/rss/comment/513
  2. Comment ATOM : http://pureholic.net/atom/comment/513
  3. 동근 2009/05/22 11:34  편집/삭제  댓글 작성  댓글 주소

    Hint 1. Visual Studio 2008의 경우에도 위와 같이 설정하면 된다. 그리고 밑에 Oxc0150002 에러 패치 또한 동일하게 작업을 해줘야지 정상적으로 사용이 가능하다.

    Hint 2. DLL 파일이 없다고 할 경우에는 cv110.dll, cxcore110.dll, highgui110.dll 파일을 openCV\bin 위치에서 복사해와서 함께 실행을 해야한다.

    오로지 2005 버젼을 대상으로 만들어져서 그런건가? -0- 귀찮은 문제이다.