현재 서버에 Altibase 4 를 사용하고 있으며, 이를 클라이언트 프로그램을 통해서 서
버의 MMDB를 접근하려고 합니다.
기존에는 SQL 이나 오라클은 ODBC에 드라이버가 등록(물론 설치를 해주었죠)되어 있어
서 사용자가 직접 제어판의 ODBC 관리자를 실행시켜서 등록을 시켜주는
방법도 있고 또는 직접 프로그래밍 내의 코딩 작업을 통해서 프로그램이 실행될 때 등
록해 주고 프로그램이 종료될 때 해지해 주는 그런 작업으로 해왔습니다. 전 후자에
해당됩니다.
제가 궁금한 것은 Altibase 4와 관련하여 ODBC에 등록할 수 있는 드라이버 설치 프로
그램이 있는지요? 알티베이스 홈피에서도 찾아볼수가 없어서요(물론 있겠지만 어느 항
목에 있는지 몰라서요)... 참고로 클라이언트 운영체제가 윈도 XP 입니다.
또한 드라이버를 성공적으로 설치한 경우, 이를 프로그래밍 적으로 ODBC에 DSN을 자동
으로 등록해 주는 소스 코드가 있는지요? MS-SQL 이나 Oracle은 있는데
Altibase는 첨해봐서요? 혹시 가능한지요.... 일단 ODBC에 등록하면 CDatabase 클래스
를 이용해서 개발하는데 편리해서요...
현재 나와 있는 Altibase 샘플들을 보면요... SQLEnv(..) SQLConnect(...) 등등 이런
함수들이 있는데 이건 좀 생소해서요....
가령 제가 기존에 MS-SQL로 작성된 ODBC 등록하는 함수와 해제하는 함수를 올리도록
하겠습니다. 보시고 답좀 주시면 고맙겠습니다.
/*
함수 : SetAddDSNtoODBC
설명 : ODBC DSN 자동 등록
변수 : - dsn : Data Source Name
- ip : 서버 IP
- db : 데이터 베이스 이름
반환 : 성공-TRUE, 실패-FALSE
정보 : JinSoo Kang / 생성날짜-2006.09.04 / 수정날짜-2006.09.04(JinSoo Kang)
*/
BOOL SetAddDSNtoODBC(char *dsn, char *ip, char *db)
{
char szAttribute[256];
memset(szAttribute, 0x00, 256);
wsprintf(szAttribute,
"DSN=%s%cDescription=KDN LCMS%cServer=%s%cAddress=%
s%cNetwork=DBMSSOCN%cDatabase=%s%c",
dsn, '\0', '\0', ip, '\0', ip, '\0', '\0',
db, '\0');
RETCODE ret_code = SQLConfigDataSource(NULL, ODBC_ADD_SYS_DSN, "SQL
Server", szAttribute);
return ret_code;
}
/*
함수 : SetDelDSNtoODBC
설명 : ODBC DSN 자동 해제
변수 : - dsn : Data Source Name
반환 : 성공-TRUE, 실패-FALSE
정보 : JinSoo Kang / 생성날짜-2006.09.04 / 수정날짜-2006.09.04(JinSoo Kang)
*/
BOOL SetDelDSNtoODBC(char *dsn)
{
if(!dsn) return FALSE;
char szDsn[256];
memset(szDsn, 0x00, 256);
wsprintf(szDsn, "DSN=%s", dsn);
RETCODE ret_code = SQLConfigDataSource(NULL,
ODBC_REMOVE_SYS_DSN, "SQL Server", szDsn);
return ret_code;
}
위와 같이 작성하였으며, 프로그램 실행될 때 이 함수를 호출하면 자동으로
ODBC 관리자에 등록이 되면 종료할 때 자동으로 삭제됩니다.
즉, 사람이 수동으로 등록/해제를 하지 않도록 하게 한 것입니다.
존 하루 되십시오.
|