개요
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
복사