Q&A

  • Oracle DB에서 ADO 연결을 사용한 Appserver 프로그램에서 데이터 오류
환경
- Delphi 6
- Oracle 9.2
- Applicatoin Server (borland socket server에 접속함)
- appserver에서는 ADOQUERY를 사용하여 질의하고 Dataset provider에 연결 함
- Client 프로그램에서 Client Dataset과 Datasource를 이용하여 Dataset provider에 연결하여 데이터 가져옴.
- appserver가 Oracle에 접속할 때는 Microsoft OLE DB Provider fo Oracle을 사용하고 있습니다.
(기존에는 Oracle Provider for OLE DB를 사용하다가 Type Mismatch 문제 때문에 수정했습니다.)

문제점
데이터를 DBGrid, dxDBgrid등에 연결시 소수점 이하 자리가 모두 잘려서 나옵니다.
예를 들면 98.123 이면 ㅠ.ㅠ 98로 나오는 거죠...

지금까지 확인한 것으로는 SELECT * FROM AAA 라는 쿼리를 사용할 때는 문제가 없다가, 이 쿼리를 SELECT aaa, bbb, ccc FROM AAA 로 수정하면 값이 잘리는 현상은 확인 했습니다. 그러나 이상한 것은 이렇게 쿼리를 변경해서 사용했던 것을 다시 SELECT * FROM AAA 라고 변경을 해도 한번 변경해서 사용했던 ADOQUERY는 계속 같은 문제를 발생 시킨다는 것입니다. (이 외의 다른 경우에도 동일한 문제가 발생하고 있는 것으로 추측하고 있습니다.)

데이터 타입을 ADO 가 자동으로 컨버전 하는 부분에서 어떤 옵션을 수정하고 다시 복원이 안되는것 같은데 방법이 없을까요?

-- 내용 추가 --
현재 appserver 연결 없이 하나의 폼에서 DB 연결하고 ADOQUERY 와 DATASOURCE를 이용해서 작업해본 결과 SELECT * FROM AAA와 SELECT aaa, bbb, ccc FROM AAA 모두 정상 동작합니다.  appserver의 문제 인 것으로 추정 되기도 합니다..

0  COMMENTS