현재까지 제가 PostgreSQL용 ODBC 드라이버 6.5.0 버전을 써보면서,
문제점들을 몇가지 알려드릴게요.
저처럼 왜 안되지 하면서 끙끙거리면서 시간 낭비 하지 마시길.
1. 커서를 서버 커서로 쓸 경우, 커서 이동이 forward only로만 작동합니다.
(이 한계를 벗어나려면, ODBC 드라이버 자체를 고치든지,
프로그램 차원에서 트랜잭션으로 처리를 해서, 직접 코딩을 해야합니다)
2. 커서를 서버 커서로 쓸 경우, ado의 recordset 속성인 rowcount(?) 이
값을 사용할 수 없습니다.
3. 커서를 서버 커서로 쓸 경우에 ODBC 드라이버 셋팅에서
Use Declare/Fatch 기능을 사용하겠다고 체크를 했다면,
ODBC 자체내의 Rollback 기능이 무시됩니다. 무조건 commit 입니다.
(주의 하셔야할 부분입니다)
////////
아무튼 거의 모든 문제가 커서를 서버 커서로 쓸 경우에 나타나는데,
서버 커서를 쓰는 이유가 select 결과를 최대한 빨리 프로그램으로
가져오고자 하는 것일진데, 대용량 테이블일 경우는
어쩔 수 없이 서버 커서를 사용해야할 것입니다.
이런 경우라면, 현재 PostgreSQL 용 ODBC 드라이버로는
드라이버차원에서 그것을 지원해내지 못합니다.
방법은 클라이언트 커서를 사용하든지,
아니면, 서버의 트랜잭션 기능을 프로그램 차원에서 구현해서,
사용하든지 (이 경우라면, aod의 recordset 같은 클래스를 독자적으로
만들어야하겠지요)
....
여기까지 입니다. (개인적으로 ODBC 드라이버가 하루 빨리 업데이트 되었으면
하는 바람입니다. 오죽 답답했으면, 직접 소스까지 보면서
고쳐볼 생각까지 했으나, 제게는 실력과 시간이 너무 부족하네요.
뜻이 있으시면 직접 도전해 보시는 것도 ^.^)
>>한경일 님께서 쓰시길<<
:: 어제 드뎌 ODBC를 통해 테이블을 봤습니다.
:: 히히 거의 포기하려다가 정재익,김상기님이 답변을 주셔서리
:: 꾸꿋이 견뎠지요~~
:: 음 기분이 무지 좋군여~~햐햐~~
:: ..속도문제땜에 메모리오류가 나기는 하지만...
:: 좀더 살펴서 꼭 써볼랍니다.
:: ....첨에 회사들어와서 넘막막했는데..
:: 이름도못들어본 postgreSQL ..하하 주변에 이게 먼지아는사람을 여지껏 만나적이
:: 없습니다..히히 암튼 좋은사이트입니다.
::
|