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

FireBird Q&A
[4488] Re:인터베이스에서 파이어버드로 그대로 교체?
박지훈.임프 [cbuilder] 2403 읽음    2012-09-03 15:11
사용하시던 인터베이스와 새로 설치한 파이어버드의 버전에 따라 다를 수 있습니다.

인터베이스와 파이어버드의 내부 디비 파일 포맷을 ODS라고 하는데요. 인터베이스에서 파이어버드에서 갈라지던 시점으로부터 시간이 지나 각각 버전이 올라가면서, 각각 서로 다른 ODS를 사용하게 되었습니다. 그래서 인터베이스의 비교적 최근 버전을 파이어버드의 최근 버전으로 바꾸게 되면 호환이 안될 수도 있습니다.

따라서, 안전한 방법은 백업-리스토어를 하신 후 사용하시는 것입니다.

또 한가지 주의하실 것은, IBX, InterbaseExpress로 연결하신다고 하셨으므로 클라이언트 라이브러리 dll이 제대로 바뀌었는지 확인하는 것입니다. 인터베이스의 클라이언트 라이브러리는 gds32.dll이고 파이어버드의 클라이언트 라이브러리는 fbclient.dll인데요. 파이어버드는 설치 과정에서 fbclient.dll 파일을 gds32.dll 이름으로 덮어씌우는 옵션이 있는데요.

이 옵션이 체크되어 있으면 문제가 없습니다만(기본값은 체크되어 있는 것입니다) 체크되어 있지 않은 상태로 설치를 진행했다면, 머신의 system32 디렉토리에는 인터베이스의 gds32.dll 파일이 그대로 남아있게 됩니다. 그런데 IBX는 클라이언트 라이브러리를 지정하는 기능이 없이 무조건 gds32.dll로 연결을 하게 되므로, 따라서 인터베이스의 파일로 파이어버드 서버를 접속하는 결과가 발생하게 됩니다. 두 데이터베이스 서버의 기능이 다르므로 이런 일은 결코 좋지 않겠지요.

따라서, system32 디렉토리의 gds32.dll의 파일 등록정보를 확인하셔서 인터베이스 파일인지 파이어버드 파일인지 확실히 할 필요가 있습니다. 혹시라도 인터베이스 파일인 경우라면, 삭제하신 후 파이어버드 설치 디렉토리의 bin 디렉토리에 있는 fbclient.dll 파일을 system32로 복사하시고 gds32.dll로 이름을 바꿔주시면 됩니다.


p.s.
그러고보니, 저번에 제게 전화 주셨던 분이신가봅니다.
그때도 이런 말씀을 드렸던 거 같은데요. ^^



브리오 님이 쓰신 글 :
: 먼저 Interbase를 이용해 DB를 만들고 (a.gdb), Delphi 의 IBX를 사용하여 프로그램을 작성했습니다.
: 즉 ibx의 Database 에  a.gdb 라는 interbase 파일이 지정된 것이죠.
:
: 같은 시스템에서 Interbase 를 지우고 Firefox 를 설치했습니다.
:
: 그러면 다른 걸 안 건드려도 앞의 응용 프로그램에서 여전히 a.gdb를 그대로 연결해서 사용해도 돌아갈까요?
:
: 일단 몇 가지 시도 결과는 문제는 없어 보입니다.

+ -

관련 글 리스트
4487 이런 상황은.... 브리오 1875 2012/09/03
4488     Re:인터베이스에서 파이어버드로 그대로 교체? 박지훈.임프 2403 2012/09/03
4492         Re:Re:인터베이스에서 파이어버드로 그대로 교체? brio 1955 2012/09/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.