기술 정보
home
채널 소개
home

Unix 환경에서 .odbc.ini 파일을 사용한 Tibero 접속 테스트

문서 유형
기술 정보
분야
인터페이스/연동
키워드
.odbc.ini
Unix
1 more property

개요

Unix 환경에서 .odbc.ini 파일을 사용하여 Tibero 데이터베이스 접속을 테스트하는 방법과 샘플 코드를 설명합니다.
.odbc.ini 파일은 ODBC(Open Database Connectivity) 설정 정보를 저장하는 파일로, DSN(Data Source Name)을 등록하여 응용 프로그램이 데이터베이스에 접속할 수 있도록 합니다.

방법

odbc.ini 설정

계정 홈 디렉터리 아래에 $HOME/.odbc.ini 파일을 생성하고, 환경에 맞게 설정합니다.
[ODBC Data Sources] tibero5 = Tibero5 ODBC driver [ODBC_TEST] Trace = 1 TraceFile = /home/tibero/iodbc/tmp/odbc.trace [tibero5] Driver = /home/tibero/tibero5/client/lib/libtbodbc.so Description = Tibero5 ODBC Datasource SID = fintac1 User = tibero
SQL
복사

tbdsn.tbr 설정 확인

ODBC 설정에서 참조하는 SID에 대한 접속 정보를 tbdsn.tbr에 등록합니다.
fintac1=( (INSTANCE=(HOST=192.168.51.171) (PORT=58629) (DB_NAME=fintac) ) )
SQL
복사

연결 샘플 코드

아래 odbctest.c는 .odbc.ini 파일에 등록된 DSN을 이용하여 Tibero DB에 접속하는 예제 코드입니다.
#include <stdlib.h> #include <stdio.h> #include <string.h> #include <sqlcli.h> //#include <sqlext.h> // 전역 변수 #define SQL_LEN 1000 #define DATA_LEN 100 #define JOB_LEN 9 #define _SUCCESS 0 int main() { // 환경 변수 SQLRETURN retval; SQLHENV henv; SQLHDBC hdbc; // ODBC 환경 메모리 할당 retval = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv); // ODBC 버전 설정 (3.0) retval = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0); if(retval == SQL_SUCCESS || retval == SQL_SUCCESS_WITH_INFO) printf("ODBC 환경속성 설정 성공.\n"); else printf("ODBC 환경속성 설정 실패.\n"); // DB 연결용 메모리 할당 retval = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc); if(retval == SQL_SUCCESS || retval == SQL_SUCCESS_WITH_INFO) printf("ODBC 연결용 메모리 할당 성공.\n"); else printf("ODBC 연결용 메모리 할당 실패.\n"); // 연결 속성 설정 및 DB 연결 SQLSetConnectAttr(hdbc,5,(void*)SQL_LOGIN_TIMEOUT,0); retval = SQLConnect(hdbc, (SQLCHAR *)"ODBC_TEST", SQL_NTS, // .odbc.ini에등록된 DSN정보 / (SQLCHAR *)"tibero", SQL_NTS, (SQLCHAR *)"tmax", SQL_NTS); if(retval == SQL_SUCCESS || retval == SQL_SUCCESS_WITH_INFO) printf("ODBC 데이터베이스와의 연결 성공.\n"); else printf("ODBC 데이터베이스와의 연결 실패.\n"); // 접속 해제 SQLDisconnect(hdbc); SQLFreeConnect(hdbc); SQLFreeEnv(henv); return 0; }
SQL
복사

컴파일

운영체제 환경에 맞는 컴파일 명령을 사용합니다.
AIX gcc 예시
gcc -maix64 -Wl,-brtl -o odbctest odbctest.c -g \ -I$TB_HOME/client/include \ -L$TB_HOME/client/lib -ltbodbc -ltbertl -ltbcli -lpthread -lm
SQL
복사
Linux gcc 예시
gcc -o odbctest odbctest.c \ -I$TB_HOME/client/include \ -L$TB_HOME/client/lib -ltbodbc -lm -ldl
SQL
복사
주의
ltbodbc 옵션을 제외하면 .odbc.ini 파일을 인식하지 않고, tbdsn.tbr 설정을 먼저 인식하여 동작합니다.
OS에 따라 일부 컴파일 및 링크 옵션이 다를 수 있으므로 환경에 맞게 조정이 필요합니다.