★ADO 가 버그가 있는건지...??
[TEST환경]
MDAC 버전 2.8
델파이버전 7.0
DATABASE MS-SQL7 SP4
클라이언트 WIN98SE, WIN2000
서버 WIN2000, WIN NT
[증상]
참 이상한 문제가 발생했습니다..
저는 보통 숫자를 처리하는 필드를 NUMERIC TYPE으로 정의해서
DB 테이블들을 생성해서 쓰고 있습니다.
그런데 TADO쿼리를 MS-SQL OLE DB 에 연결하고
SELECT를 해올시에..
NUMERIC으로 선언된 필드에 분명 -(마이너스, 음수) 값이 들어가 있는데..
TADO쿼리로 해서 읽어와 이놈을 DB그리드와 연결시키면..
- 가 없는 값으로 나오더군요..
그래서 BDE와 TQuery로 테스트 해보니 이상없이 나왔구..
볼랜드의 SQL EXPLORER로 가서 해당 테이블을 접근해도 이상이 없었구
MS SQL의 Query Analyzer로 해도 이상없이 읽어오구..
MS SQL의 EM(Enterprise Manager)로도 이상없이 읽어오는데..
ADO 쿼리를 MS-SQL OLEDB 프로바이더와 연결해서 읽어오면
여지 없이 NUMERIC TYPE으로 정의된 필드에 있는 - 값은 읽어오지
못합니다..
즉 원래 테이블에는 -1이 들어있을경우 DB그리드에 표시되는 값은 1만 표시되는 거죠...
그러나 이것을 SQL문의 CAST는 CONVERT 를 써서.. NUMERIC TYPE을 INT나 FLOAT으로 바꾸면 DB그리드에서 제대로 표시되더군요.
도대체 원인이 어디에있는지 모르겠습니다..
혹시 이런 경험이 있으신 분들의 조언 부탁드립니다..
(필드의 NUMERIC TYPE을 다른타입으로 바꾸라는 조언 말구요..)
혹시 쿼리에 포멧값 지정 안 하셨나요?
##,#;0 이런거
그러면 갑이 안 나올수도있는데