귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
 광고문의 :
질문과 답변 질문과 답변 입니다.
글내용 - 질문과 답변
 [질문]Firebird 서브쿼리시 필드 type mismatch 관련 문의
peace
(고영호)
2019-07-11 오전 1:38:18
206회 조회


등록된 파일이 없습니다.

1. 개발/실행 플랫폼

(1) OS :윈도우7

(2) 개발툴 :Delphi7

(3) 사용 Database : Firebird

2. 개발 중인 프로그램

3. 질문 내용

안녕하세요?

아래처럼 서브쿼리시에 'type mismatch for field "StartMile" ,expecting: float actual: LargeInt' 오류가 발생합니다.
 

Sql.text='Select * from (select * from CarMile where StartDay>='''+sDate_2+''') where StartDay<='''+DeKiJunDay.text+'''';
 

쿼리 콤포넌트(zeoslib)의 필드에디터에 필드를 등록하여 사용하고 있고요,
StartMile이라는 numeric 형 필드가 존재합니다.
필드에디터에 등록된 필드들을 전부 삭제해서 쿼리하면 잘 동작합니다.
그리고 필드에디터에 필드들이 등록된 상태에서도 서브쿼리하지 않고,
단순히 Sql.add('Select * from CarMile where startDay<='''+DeKiJunDay.text+'''') 해도 잘 동작하고요.
다만 위의코드처럼 중간에 서브쿼리(select~)를 집어 넣으면 위 오류가 발생합니다.
에디터에 등록된 StartMile의 필드타입을 보니까 TFloatField 로 되어 있는데(DB에는 numeric(12,0))
도 float 형으로 인식하지 못하고 LargeInt 형으로 간주하는것 같아 보입니다.
어떻게 해결해야 할까요? fireibird 2.1 입니다.