델파이/C++빌더에서 BDE로 RDBMS 사용의 문제

바로 아래에서 쓴 업그레이드 정책에서, 구버전 사용 권리의 경우 물론 여러 고객사에 다양한 버전의 소프트웨어를 판매한 경우 등에서 중요하지만, 업그레이드 후에 최신 버전만 사용하더라도 중요한 경우가 있습니다. 바로 BDE와 같은 경우입니다.

BDE는 오랫동안 델파이/C++빌더 개발자들에게 기본 데이터베이스 액세스 방식으로 익숙했었는데요. 이 BDE는 로컬 디비 엔진과 SQL 링크로 구성되어 있습니다. 여기서 SQL 링크(SQL Links)라는 것이 BDE에서 RDBMS에 대한 연결을 담당하는 부분입니다. 반면 로컬 디비 엔진은 이름 그대로 파라독스나 dBase와 같은 로컬 데이터베이스를 운영하는 부분입니다.

2002년 델파이 7이 출시되면서 BDE에서 SQL 링크가 제거되었습니다. 이것은 델파이 6에서 등장한 dbExpress로 대체하기 위한 것인데요. 이런 내용은 델파이 7이 출시되기 전인 2002년 초에 볼랜드에서 미리 공지를 했었습니다.

BDE의 미래 – SQL 링크는 사라지고 로컬 DB는 계속 지원
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=news&no=93

따라서, BDE로 오라클이나 사이베이스 등 RDBMS를 연결할 수 있는 마지막 버전은 델파이6와 C++빌더6입니다. 델파이7 이후의 버전에서는 BDE로 RDBMS에 연결할 수가 없죠.

이게 델파이 7 이후로 적지 않은 개발자들에게 큰 고민을 안겨주고 있습니다. 사실 BDE에서 dbExpress로 마이그레이션을 하는 것이 그렇게 크게 어렵거나 작업 시간이 많이 걸리는 작업은 아니고, 또 dbExpress로 옮겼을 때의 이점이 확실하기 때문에(더 가볍고 빠르며 크로스플랫폼이 된다는 장점) dbExpress를 쓸 이유는 충분합니다.

하지만, 적게는 수백개, 많게는 수천개의 ‘화면’을 가진 SI성 업무 개발 프로젝트에서는, 이렇게 엄청나게 많은 폼 파일들을 일일이 열어서 변환 작업을 하는 것만 해도 어마어마한 작업이 되게 마련이기 때문입니다. 여기에 테스팅 시간까지 감안하면, 생각만 해도 끔찍한 작업이 되겠죠. 왜 SQL 링크 지원을 끊었는지 원망이 안들래야 안들 수가 없을 겁니다.

하지만 이게, 그러니까 델파이7 이후 버전에서도 BDE를 사용하는 것이 가능한 경우가 있으니, 그것이 델파이/C++빌더의 구버전으로부터 업그레이드로 구입한 경우입니다.

BDE는 일반적으로 델파이나 C++빌더와 함께 설치되지만, 사실은 독립적인 소프트웨어 요소이고, 동일 PC에 구버전과 신버전을 함께 설치할 경우 동일한 BDE가 업데이트되고 두 개발툴에서 공유됩니다. 따라서, BDE에서 SQL 링크를 지원하는 구버전(6 버전 이하)을 설치한 후 SQL 링크를 지원하지 않는 신버전(7 이상)을 설치하면, 신버전에서도 SQL 링크를 사용할 수 있습니다. (물론 이건 일반적인 경로로 설치할 경우를 말한 것이고, 약간의 BDE만 별도로 설치하는 것도 가능합니다)

이 방법이, 델파이 7 이후의 버전(물론 가장 최근의 2009와 2007 포함)에서 BDE로 RDBMS에 연결할 수 있는 유일한 방법입니다. 앞서 업그레이드 정책에 대한 안내에서 설명한 것처럼, 업그레이드를 구입한 후에도 여전히 구버전에 대한 사용 권리가 있기 때문에 가능한 것입니다.

(다만, 이것은 구버전 개발툴에서 설치된 BDE와 신버전 개발툴에서 설치되는 BDE가 동일한 32비트일 경우만 가능합니다. 정확히 어느 버전인지는 기억나지 않는데, 델파이 3 혹은 4 버전까지는 BDE가 16비트로 되어 있었습니다.)

하지만, BDE 자체도 라이선스가 있기 때문에, 델파이나 C++빌더의 6 이하 버전의 라이선스를 보유하지 않은 개발자가 SQL 링크를 사용하면 라이선스 위반으로 불법이 됩니다. 좀 까다롭죠? 하지만 SW 라이선스라는 것이 원래 좀 그렇습니다. ^^

하지만, BDE로 RDBMS를 액세스하는 코드가 포함된 프로젝트의 경우, 구버전 라이선스를 가지고 있는 경우가 (라이선스가 없는 불법이 아닌 한) 대부분일 것이므로 대부분의 경우 이런 조건에 영향을 받지는 않을 것입니다.

만약, 구버전 라이선스가 없는데도 반드시 BDE SQL 링크를 사용해야만 하는 상황이라면…
엠바카데로/코드기어의 사전 승인을 받아야만 합니다. 그렇지 않으면 델파이 구버전을 불법적으로 사용한 것으로 간주될 수도 있으니까요.

답글 남기기

이메일 주소는 공개되지 않습니다.