ODBC 드라이버 연결
ODBC 드라이버 연결 방법을 소개합니다. 이를 통해 타 DBMS를 사용할 수 있습니다.
ODBC 개념
ODBC(Open DataBase Connectivity)는 모든 DBMS에 독립적인 데이터베이스 애플리케이션을 작성하기 위한 API의 집합 으로 특정 DBMS 사용자가 ODBC 드라이버를 통해 다른 DBMS를 사용할 수 있게 합니다.
따라서 DBMS에 연결하기 위해 ODBC 드라이버 관리자를 호출하여 사용하려는 드라이버를 호출하고 그 드라이버는 SQL을 사용하여 DBMS와 교신합니다. 즉, ODBC는 사용자와 각 데이터베이스 엔진 사이를 연결해 사용자가 공통된 인터페이스로 각각의 다른 데이터베이스 엔 진에 접근하게 하여 원하는 데이터를 참조할 수 있도록 합니다.
[그림 1] ODBC 구조도

Tibero ODBC
Tibero ODBC는 2.x, 3.x 버전을 모두 지원합니다.
단, ODBC 표준 61개 함수 중 아래 2개 함수를 지원하지 않으며 사용을 할 경우 not implemented 오류가 발생합니다.
SQLBrowseConnect
연결 문자열을 찾아내기 위해 iterative한 방법을 제공하는 API입니다.
SQLSetScrollOptions
3.x에서 SQLSetStmtAttr로 대체합니다.
ODBC 표준 관련 링크
API에 대한 관련 정보는 "ODBC Function Summary" 관련글을 참고합니다.
tbCLI
Tibero가 제공하는 Call Level Interface(CLI)로 사용자의 애플리케이션 프로그램과 Tibero간의 SQL 인터페이스 역할을 수행합니다.
tbCLI는 ODBC 및 X/Open Call Level Interface Standard를 기초로 개발되었으며 Tibero ODBC=tbCLI로 인식해도 무방합니다.
Tibero ODBC 설치 및 구성
본 절에서는 ODBC의 설치 파일과 드라이버 등록 및 연결하는 방법에 대해서 설명합니다. (Tibero 7 FS02 Windows 바이너리 기준)
기본적으로 32bit 클라이언트 OS 환경에서는 32bit ODBC 설치, 64bit 클라이언트 OS 환경에서는 64bit ODBC 설치 방법을 설명합니다.
ODBC 설치 파일
클라이언트 인스톨러나 ODBC 인스톨러의 경우 GUI 환경에서 설치 및 등록을 자동으로 진행할 수 있습니다. 만약, 수동으로 진 행하려면 Tibero 서버가 설치된 환경에서 설치하고자 하는 클라이언트 컴퓨터 환경에 맞게 설치 파일을 가져옵니다.
Windows 계열에서 Tibero 7 ODBC Driver를 설치할 때 사용자의 편의를 위해 Tibero에서는 Win32/Win64용 ODBC 드라이 버 설치 실행 파일(.exe)과 Win32/Win64용 ODBC 클라이언트 라이브러리 파일(.dll)을 제공하고 있습니다.
아래는 배포되는 바이너리 파일명입니다. (해당 파일은 Tibero 7 기준이며 다른 버전의 경우 exe 파일명이 일부 다를 수 있습니다.)
Windows 32bit
libtbcli.dll, libtbcli.lib, tbodbc_driver_installer_7_32.exe
Windows 64bit
libtbcli.dll, libtbcli.lib, tbodbc_driver_installer_7_64.exe
서버와 버전이 일치하는지 확인하기 위해 libtbcli.dll 파일에서 오른쪽 마우스 버튼을 클릭한 뒤 [속성] > [자세히]의 Product version을 확인합니다.
[그림 2] ODBC 버전 확인

ODBC 드라이버 등록
ODBC 드라이버 등록 순서는 아래와 같습니다.
Tibero ODBC의 bit 선택
Tibero ODBC의 32bit 또는 64bit 선택은 설치하는 클라이언트 OS 환경에 맞추기보다는 Tibero ODBC를 사용하는 실제 어플리케이션의 bit에 맞춥니다.
바이너리 복사
Tibero 버전에 따라 ODBC 바이너리를 복사하는 위치가 다릅니다. 버전에 맞게 ODBC 바이너리를 위치합니다.
드라이버 등록
command 창을 열어 ODBC 바이너리가 위치한 곳으로 이동한 후 명령어를 실행합니다. 만약 Windows 7 이상일 경우command 창을 관리자 권한으로 실행합니다.
등록 방법
< driver path >
ODBC 바이너리 디렉터리입니다.
등록 예
드라이버 등록 확인
[시작] > [제어판] > [관리도구] > [데이터 원본(ODBC)] > [드라이버]에서 Tibero 드라이버가 등록된 것을 확인합니다.
[그림 3] ODBC 등록 확인

ODBC 연결
Tibero ODBC를 사용하는 애플리케이션에서 연결 문자열(Connection String)을 사용하는 방식과 ODBC 관리자에 DSN(Data Source Name)을 등록하는 방식에 대해 설명합니다.
연결 문자열을 사용하는 방식
ODBC 함수 중에서 SQLDriverConnect를 사용할 경우 아래와 같은 정보가 필요합니다.
실제 사용할 때는 한줄로 입력하며 Tibero 5에서 DB 항목의 경우는 DB NAME에 해당하는 정보를 입력합니다.
DSN을 등록하는 방식
ODBC 함수 중에서 SQLConnect를 사용할 때 DSN 정보가 필요하므로 [제어판] > [관리도구] > [데이터 원본(ODBC)] > [시스 템 DSN]에 데이터소스를 추가합니다.
[그림 4] ODBC 데이터소스 추가

접속방법은 IP, PORT 방식 또는 SID 방식이 있습니다.
IP, PORT 방식을 이용한 접속 Tibero 클라이언트 또는 서버의 설치 없이 ODBC Driver를 등록한 이후에 바로 사용할 수 있습니다.
[그림 5] IP, PORT 방식

SID 방식을 이용한 접속 Tibero 클라이언트 또는 서버가 설치된 경우 사용할 수 있으며 클라이언트 설정 파일인 tbdsn.tbr 파일에 SID 이름이 등록되어 있어야 합니다.
[그림 6] SID 방식

[그림 7] tbdsn.tbr

DSN 등록 후 [Test] 버튼을 클릭하여 정상적으로 접속이 되는지 확인합니다. 만약 실패할 경우 Tibero 서버의 기동, 방화벽 차단, 접속 정보 등을 확인합니다.
[그림 8] ODBC 접속 테스트

ODBC Manager 설치
본 절에서는 UNIX 계열(Linux 포함)에서 iodbc 설치 및 연동하는 과정을 설명합니다. UNIX 계열의 경우, ODBC Manager가 존재하지 않으므로 iodbc 또는 UNIX ODBC를 별도로 설치해야 합니다.
아래는 ODBC Manager를 설치하는 과정에 대한 설명입니다. 각 과정에 대한 상세한 설명은 해당 절의 내용을 참고합니다.
Driver Manager 설치
(1) 다운로드
http:/ iodbc.org 에서 다운로드 후 설치를 원하는 서버에 업로드합니다.
아래는 libiodbc-3.52.16.tar.gz 소스파일을 다운받아 서버에 설치한 결과입니다. 만약, tar 옵션의 xvzf가 적용되지 않을경우 먼저 gunzip으로 압축을 해제한 후 tar -xvf 옵션으로 해제합니다.
(2) iodbc 설치
tar.gz 파일로 설치 진행 시 아래와 같은 기본적인 순서를 따릅니다.
사전환경점검 '$HOME/iodbc' 디렉터리에 설치 전, 사전환경점검을 합니다.
컴파일 점검결과에 문제가 없으면 컴파일을 합니다.
파일 설치 컴파일된 파일을 설치합니다.
(3) 설치 확인
설치된 서버에 원하는 bit로 설치됐는지 확인합니다. 특정 OS에 따라 64bit 서버에 32bit로 설치되는 경우가 있으 므로 file 명령어를 이용하여 확인이 필요합니다.
만약, ODBC Manager가 64bit로 설치됐다면 내부적으로 사용하는 Tibero ODBC 역시 64bit여야 하며 재설치가 필요 할 경우 make clean 이후에 진행합니다.
profile 설정
profile 내에 아래와 같은 내용을 추가합니다. IODBC_HOME의 경우 iodbc를 설치한 위치로 설정합니다.
OS에 맞게 환경변수 LD_LIBRARY_PATH를 설정합니다.
ODBC 환경 파일 설정 및 확인
ODBC Driver Manager의 환경 파일에 Tibero ODBC Driver를 등록하는 방법입니다. 연결 테스트 전에 Tibero 클라이언트 또는 서버의 설치 및 관련 환경설정이 되어야 합니다.
환경 파일 위치 및 이름 설정
$HOME/.odbc.ini(개인 설정) 또는 /etc/odbc.ini(공통 설정)으로 설정 가능합니다.
(우선순위는 $HOME/.odbc.ini가 높습니다.)
ODBC 환경 파일 설정 방법
< ODBC Data Sources >
Datasource 이름으로, Oracle Gateway 설정 파일에 해당 내용이 들어갑니다.
< ODBC Data Sources 세부설정>
ODBC Data Sources에서 설정한 이름으로, 대소문자까지 일치해야 합니다.
Driver
ODBC Manager에서 로드하는 Tibero ODBC Driver 파일입니다. 해당 파일 존재 여부 및 권한에 대해서 확인이 필요합니다.
SID
Tibero 클라이언트 또는 서버의 tbdsn.tbr 파일에 설정한 Alias 정보입니다.
User
사용자를 의미합니다.
Password
사용자 패스워드를 의미합니다. 테스트 및 링크 생성의 경우 별도로 사용자를 가져가므로 큰 의미는 없습니다.
ODBC 환경 파일 설정 예
연결 테스트
'$IODBC_HOME/bin' 폴더에 있는 iodbctest를 이용하여 연결 테스트를 수행합니다. 테스트에 문제가 발생하는 경우 ODBC 환경 파일 이름 및 위치와 설정을 확인합니다.
아래는 iodbctest를 이용한 연결 테스트 설정 방법입니다.
DSN
ODBC 환경 파일에서 설정한 ODBC Datasources 이름입니다.
UID, PWD
테스트 할 접속 계정 및 패스워드입니다.
아래는 iodbctest를 이용한 연결 테스트 사용 예입니다.
문제 해결
본 절에서는 특정 문제가 발생했을 때 해결하는 방법을 설명합니다.
로그 발생
Tibero ODBC(=tbCLI)에서는 특정 환경변수를 적용하여 로그를 발생시키거나 글자 깨짐 등의 문제를 해결할 수 있습니다. 로그를 발생하는 환경변수의 경우 일부 성능이 느려질 수 있으므로 문제가 있을 때 일시적으로만 사용합니다.
아래는 자주 사용하는 환경변수에 대한 설명입니다.
TBCLI_LOG_LVL
로그를 출력하게 하는 환경변수입니다. trace 값을 설정하면 로그가 출력됩니다.
TBCLI_LOG_DIR
로그를 생성하는 디렉터리를 설정합니다. 설정하지 않을 경우 아래와 같은 경로에 로그가 생성됩니다. (UNIX 계열 : /tmp/tbcli_날짜시간.log)
TB_NLS_LANG
클라이언트의 캐릭터 셋을 설정하는 부분으로 기본은 MSWIN949(한글)로 설정되어 있습니다. 보통은 DB 캐 릭터 셋과 일치시키거나 부분집합으로 설정하며 설정할 수 있는 값은 DB 캐릭터 셋과 동일합니다.
예제
본 절에서는 ODBC를 이용하여 연결하는 기본적인 형태의 예제와 특수한 타입의 예제를 설명합니다.
연결 예제
UNIX 계열에서 테스트 하는 경우, Tibero 클라이언트 또는 서버가 설치된 환경에서 위의 샘플 소스를 사용하여 아래와 같이 삭제, 추가, 컴파일 및 링크합니다.
아래는 Linux 64bit일 때 예제입니다.
삭제
추가
컴파일 및 링크
Autocommit 예제
ODBC의 Autocommit 관련 기본설정은 ON 입니다. 애플리케이션에서 OFF로 처리하기 위해서는 아래와 같이 처리합니다.
타입 관련 예제
아래는 CLOB을 이용한 특수한 타입의 예제입니다.
Last updated

