database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ㆍALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
ALTIBASE Q&A 91 게시물 읽기
No. 91
질문이 있어서 글을 올립니다. ODBC 드라이버 및 등록 방법
작성자
강진수(krnet21)
작성일
2006-09-04 13:54ⓒ
2006-09-05 18:27ⓜ
조회수
8,988

현재 서버에 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 관리자에 등록이 되면 종료할 때 자동으로 삭제됩니다.

즉, 사람이 수동으로 등록/해제를 하지 않도록 하게 한 것입니다.

 

 

 

존 하루 되십시오.

이 글에 대한 댓글이 총 2건 있습니다.

이궁 너무 오랜만에 접속해서 질문에 대한 답변이 늦은감이 있네여.

그래도 답을 드려봅니다....^^

현재 SQLConfigDataSource 함수를 제공하지 않는 관계로 

위 방식의 프로그래밍 적으로 ODBC에 DSN을 자동 으로 등록/해제를 할수 없습니다.

직접 connect/disconnect 할때 스트링으로 입력하셔야만 합니다.

}

 

 

도움이 되시길 바랍니다.

참고로 
2006년 4/4분기중으로 뉴버젼의 ODBC가 개발예정입니다.
그렇게 되면 SQLConfigDataSource 함수도 사용이 가능할것이며 
위방식의 DSN 자동등록/해제 방식도 가능합니다.

검은호랑이님이 2006-09-20 11:47에 작성한 댓글입니다. Edit

정말 감사 드립니다

복 받으실 겁니다. ㅎㅎ


존 하루 되시구요~

강진수(krnet21)님이 2006-09-21 09:28에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
96국내 모회사의 MMDBMS [4]
사용자
2007-04-06
9345
94정말 초보질문 입니다.... ^^ [1]
손현웅
2007-01-23
7292
93oracle 과 Altibase의 이중화??? [1]
신정렬
2006-09-18
10308
91질문이 있어서 글을 올립니다. ODBC 드라이버 및 등록 방법 [2]
강진수
2006-09-04
8988
84질문이 있습니다. XLOG에대해 [1]
송상준
2006-02-10
7258
83오늘 교육 잘 받고 갑니다. [2]
송상준
2006-02-08
7238
75[질문] Redhat Linux에서 file cache로 사용되는 메모리의 양을 제한하고 싶습니다 [2]
임옥섭
2005-06-16
9242
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2022 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v14.2로 자료를 관리합니다