FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird 팁&트릭
[36] FireBird 2.0.1부터 델파이/C++빌더 InterBase Admin 컴포넌트가 나타납니다
박지훈.임프 [cbuilder] 7975 읽음    2007-04-04 23:17
아시다시피 델파이/C++빌더에서 기본 지원하는 InterBase Express (IBExpress) 컴포넌트는 인터베이스를 지원하기 위한 데이터베이스 컴포넌트들입니다. 파이어버드는 인터베이스로부터 업그레이드된 RDBMS이고 따라서 하위 호환성을 가집니다. 이런 이유로 IBExpress 컴포넌트들은 파이어버드에서도 동일하게 사용이 가능합니다.

델파이/C++빌더의 컴포넌트 팔레트에서 IBExpress는 두개의 탭에 나뉘어져서 나타나는데, 하나는 InterBase 탭이고 다른 하나는 InterBase Admin 탭입니다. 이중 InterBase 탭은 DB 액세스를 위한 기본 컴포넌트들이고, InterBase Admin 탭에는 인터베이스에 특화된 고급 기능들을 가진 컴포넌트들이 포함되어 있습니다. 이 고급(?) 기능에는 백업/리스토어, 설치, 로그, 보안 등의 기능들이 포함되어 있습니다.

하지만 델파이/C++빌더를 파이어버드와 함께 설치해보면 IBExpress의 두가지 탭 중에서 InterBase 탭만 나타나고 InterBase Admin 탭이 나타나지 않는 문제가 있습니다. 이것은, 델파이/C++빌더가 기동될 때 IBExpress가 내부적으로 gds32.dll의 버전을 체크하여 그 버전에 따라 InterBase Admin 탭을 표시할지 말지를 결정하기 때문입니다. (gds32.dll은 파이어버드에서 fbclient.dll로 이름이 바뀌었는데, 인터베이스와의 호환성을 위해 시스템 디렉토리에 fbclient.dll을 gds32.dll이라는 이름으로 복사해줍니다)

버전을 체크하는 이유는, 인터베이스 5 이하의 버전에서는 InterBase Admin 탭에 있는 컴포넌트들의 기능을 지원하지 않기 때문입니다. 이런 이유로 인터베이스의 버전이 6 이상인 경우에만 InterBase Admin 컴포넌트들을 보여주는 거죠.

여기서 내부적으로 실질적인 문제가 되는 것은 gds32.dll에서 엑스포트된 함수들 중 버전을 리턴하는 GetIBClientVersion() 함수 때문인데요. 파이어버드의 경우 공개된 인터베이스 6.01의 소스를 기반한 것이므로 논리적으로 인터베이스의 버전으로 따지면 6.01보다 같거나 큰 값을 리턴해야 하는데, 실제로는 파이어버드의 버전을 리턴합니다. 따라서 파이어버드 버전에 따라 1.0x 혹은 1.5x, 2.0x 이런 값들을 리턴하는 거죠. 6보다 작은 값이므로 어드민 탭이 나타나지 않게 되는 것입니다.

이와 관련된 답변들이 Q/A 게시판에 있습니다.
http://firebird.borlandforum.com/impboard/impboard.dll?action=read&db=fb_qna&no=1826
http://firebird.borlandforum.com/impboard/impboard.dll?action=read&db=fb_qna&no=2255

그런데 이 문제가 최근에 발표된 파이어버드 2.0.1 버전에서 드디어 해결이 되었습니다. 제 피씨에 설치된 델파이, C++빌더들에 인터베이스 어드민 탭이 나타난 것을 발견한 것입니다. 확실히 하기 위해 위의 두번째 링크에 있는 간단한 코드를 실행해본 결과, 리턴되는 클라이언트 버전은 6.3으로 나오는군요.

델파이/C++빌더의 여러 버전들을 실행해본 결과, 델파이와 C++빌더의 5 이상의 모든 버전에서 인터베이스 어드민 탭이 나타나는 것을 확인했습니다. 이제 파이어버드의 고급 기능들, 예를 들어 백업/리스토어, 설치, 보안 등의 기능들을 프로그램에서 코드로 제어하는 것이 간단하게 된 거죠.
늙고무식한넘 [bosungsoft]   2007-08-11 01:03 X
아주 가삼합니다 꾸벅

+ -

관련 글 리스트
36 FireBird 2.0.1부터 델파이/C++빌더 InterBase Admin 컴포넌트가 나타납니다 박지훈.임프 7975 2007/04/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.