문서유형ㅣ기술정보
분야ㅣ인터페이스/연동
문서번호ㅣTIITI017
개요
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;
}compile 옵션 (Linux 64bit)
ESQL 프로그램을 빌드할 때 필요한 컴파일 명령입니다.
gcc -o test test.c -L$TB_HOME/client/lib -ltbertl -ltbcli -lpthread -lm -I$TB_HOME/client/include
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