Q&A

  • 여러분들은 어떤 데이타베이스 연결 컴포넌트를 쓰시나요?
안녕하세요. 이호림이라고 합니다.
다름이 아니라... 여러 개발자분들은 어떠한 데이타베이스 연결 콤포넌트를 쓰는지 궁금해서요..

보통 델파이에서 데이타베이스 연결 기본 컴포넌트는 아래와 같습니다.
1. TDatabase (BDE)
2. ADO (MS)
3. DBExpress

첫번째로, BDE를 이용한 데이타베이스... 일단 가장 범용으로 쓰이는 컴포넌트인것 같습니다. 그리고 속도 또한 괜찮고요. 그런데 문제가 있습니다. 자주는 아니지만 가끔씩
BDE가 꼬일때 데이타베이스 연결이 안됩니다. 이건 치명적이죠.. 그리고 데이타베이스가 연결되어 있는도중 프로그램의 치명적인 오류로 인해 할수없이 Ctrl+Alt+Delte키를 눌러 프로그램을 강제종료하게 되면 BDE가 완전히 맛이 갑니다... 그럼 다시 재부팅을 해야하는 아주 심각한 오류입니다. 다시 말해 쓰기편하고 다 괜찮은데 불안정 하다는 애기입니다.

두번째로, ADO 흠... ADO야 이전부터 쭉~ 대부분의 개발자분들이 쓰는 데이타베이스 연결 컴포넌트 입니다. 한가지 단점이 있다면... 다중 데이타베이스 연결을 핸들링하는데 있어서 까다롭고 속도가 느린편이죠.. 그리고 코딩으로 ADO 연결객체를 만들고 다중 데이타베이스 연결을 하면 쿼리실행 도중 오류가 자주 발생합니다.
다시 말해 BDE 보다는 안정적이나 속도가 너무느려 답답합니다.

세번째로, DBExpress의 경우 빠른 데이타 Access와 가장 안정적이면서 우수한 성능을 자랑합니다. 하지만 일부 데이타베이스 연결에 있어 치명적인 버그가 있는것 같습니다.
뭐 오라클이나 MS-SQL 같이 보편화 된 데이타베이스야 문제가 별로 없는데 DB2, Informix 데이타베이스에서는 문제가 많더군요... 이부분에 있어서 완벽하게 검증된게 아닌것 같은 제 주관적인 생각입니다. 예를들어 Informix 데이타베이스에 연결한후 insert, delete 문을 실행한후 커밋이 되질 않습니다. 물론 BDE나 ADO에서는 잘 됩니다. 유독 DBExpress에서만 commit및 rollback 명령문이 들어가면 트랜잭션을 할수 없다는 오류메시지가 뜨며 또한
userpoint decimal(6) not null 이런 컬럼이 있고 select userpoint from tblname 이렇게 자료를 가져오면 심각한 오류가 발생합니다. decimal(6,0) 이렇게 필드를 변경해야 합니다. 이또한 BDE나 ADO에서는 전혀 문제되지 않지요...
다시 말해 BDE와 ADO의 장점을 가지고 있으면서 일부 데이타베이스에서는 몇몇 버그가 발생되곤 합니다.

위 BDE, ADO, DBExpress 각각의 장점을 가지는 그런 데이타베이스 연결 컴포넌트가 있는지요... 빠른 데이타 엑세스와 안정적이면서 여러 데이타베이스에 연결가능한 범용 컴포넌트가 진정으로 없는가...

저는 지금까지 3티어 기반으로 데이타베이스 프로그램을 하고 있습니다.
물론 중간의 미들웨어는 직접만들어 사용하고 있는데요... 이렇게 해봤자 서버측 원천적인 엔진은 BDE, ADO, DBExpress 3가지중 1가지를 기반으로 한다는 거지요...

물론 제가 실력이 있다면 저만의 데이타베이스 연결 라이브러리를 만들겠습니다만
아직 저수준 개발까지의 기술이 제게는 없습니다...

흠... 애기가 좀 길어 졌는데요... 제가 궁금한건 여러 개발자분들중 현재 어떠한 컴포넌트를 이용하여 데이타베이스 프로그래밍을 하고 계시고 또 문제점이 무엇인지 궁금합니다.

여러 고수님들의 답변을 기다리겠습니다...
0  COMMENTS