기술 정보
home
채널 소개
home

ESQL로 원격지 DB 접속하기 (주의사항과 예제 코드 및 설정)

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

개요

SQL로 원격지 DB에 접속할 때는 방화벽 설정, 컴파일 환경, 환경 변수 복구 등에 유의해야 합니다.
또한 예제 코드 및 설정에 대해 안내합니다.

방법

주의사항

원격지 DB의 방화벽 설정을 해제해야 접속 가능합니다.
tbpc.cfg의 include path가 정확해야 precompile 시 헤더 파일을 찾지 못하는 오류를 방지할 수 있습니다.
OS별 compile 옵션을 확인하여 정상 실행 파일이 생성되도록 해야 합니다.
테스트 후 TB_SID를 원래 로컬 DB로 되돌리지 않으면 로컬 DB 접속 및 제어가 불가능해질 수 있습니다.

예제 코드 및 설정

test.tbc 소스 (kss 참조)
ESQL로 원격 DB에 접속해 데이터를 조회하는 예제입니다
#include <stdio.h> #include <sqlca.h> #include <stdlib.h> #include <string.h> #define USERPASS "tibero/tmax" int main() { EXEC SQL BEGIN DECLARE SECTION; VARCHAR userpass[20] = {strlen(USERPASS), USERPASS}; char col3_value[100]; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT :userpass; memset(col3_value, 0x00, sizeof(col3_value)); if ( sqlca.sqlcode != 0 ) { printf(" Connection Fail ( SQLCODE : %d ) !! \n\n", sqlca.sqlcode ); } else { printf(" Connected to Tibero as user tibero \n\n"); EXEC SQL select col3 into :col3_value from esql_tmp1 where col1 = 1; printf("[result] col3 : [%s]\n", col3_value); } EXEC SQL COMMIT WORK RELEASE; return 0; }
SQL
복사
compile 옵션 (Linux 64bit)
ESQL 프로그램을 빌드할 때 필요한 컴파일 명령입니다.
gcc -o test test.c -L$TB_HOME/client/lib -ltbertl -ltbcli -lpthread -lm -I$TB_HOME/client/include
SQL
복사
tbpc.cfg
빨간색 코드는 환경에 맞게 재설정이 필요합니다.
#------------------------------------------------------------------------------ # # /home/autodist/build_160708_1952/tibero5/client/config/tbpc.cfg # # tbESQL Configuration file for Preprocessor # # Each command should be specified in a single line by itself terminated by # a newline. # Lines starting with a # character are comments which are ignored. # # Generated at Fri Jul 8 10:18:43 KST 2016 # #------------------------------------------------------------------------------ INCLUDE=$TB_HOME/client/include INCLUDE=/usr/lib/gcc/x86_64-redhat-linux/4.4.4/include/ INCLUDE=/usr/include
SQL
복사