공통 [마이그레이션][FireDAC] MapRules를 적용해 데이터타입 매핑하기
2017.02.07 17:58
FireDAC으로 마이그레이션 후
FireDAC으로 마이그레이션 후 다음 오류가 발생하는 경우 조치방법을 참고해 해결하기 바랍니다.
엄격한 데이터 타입 체크로 발생되는 오류
Type mismatch for field 'ALLOT_PT', expecting: FMTBcdField actual: Float Type mismatch for field 'GOAL_SEQ', expecting: Float actual: BCD |
조치방법
1) 필드 재생성(제거 후 추가)
Type mismatch for field 'ALLOT_PT', expecting: FMTBcdField actual: Float
위 오류에서 TFMTBcdField를 제거 후 추가하면 TFloatField가 추가됩니다.
(필드의 속성값이 유실될 수 있으니 주의하기 바랍니다.)
2) MapRules 적용
MapRules를 다음과 같이 적용합니다.(적용 방법은 하단을 참고하세요.)
FormatOptions.AssignedValues = [fvMapRules]
FormatOptions.OwnMapRules = True
FormatOptions.MapRules = <
item
SourceDataType = dtFmtBCD
TargetDataType = dtDouble
end>
데이터 길이 체크 오류
FireDAC][DatS]-32. Variable length column [SCCAREERDESC] overflow. Value length - [8], column maximum length - [4]
// 다음과 같이 쿼리에 한글이 포함된 경우 발생할 수 있습니다. SELECT '1' "SCCAREERTYPE", '대졸입사' "SCCAREERDESC" FROM DUAL UNION SELECT '2' "SCCAREERTYPE", '전문입사' "SCCAREERDESC" FROM DUAL |
조치방법
1) 필드 재생성
TStringField 제거 후 필드를 추가하면 TWideStringField가 추가됩니다.
2) MapRules 적용
FormatOptions.AssignedValues = [fvMapRules]
FormatOptions.OwnMapRules = True
FormatOptions.MapRules = <
item
SourceDataType = dtAnsiString
TargetDataType = dtWideString
end>
매핑규칙(MapRules) 적용 방법
매핑규칙 옵션은 TFDConnection, TFDQuery, TFDTable, TFDStoredproc 등에 적용할 수 있습니다.
매핑규칙 옵션은 캐스캐이드(폭포수) 옵션으로 TFDConnection에 적용 시 TFDConnection을 참조하는 TFDQuery, TFDTable, TFDStoredProc 등에 적용됩니다.
1) Object Inspector에서 속성을 이용해 적용
FormatOptions.MapRules 속성을 이용해 매핑규칙을 추가할 수 있습니다.
FormatOptions.OwnMapRules 속성을 True로 설정합니다.
FormatOptions.AssignedValues = [fvMapRules] 항목을 지정합니다.
2) 에디터를 이용해 적용
TFDConnection의 Connection Editor와 TFDQuery의 Query Editor의 Options 탭으로 이동 후 아래 그림과 같이 매핑규칙을 추가할 수 있습니다.
참고 링크
- [docwiki] Data Type Mapping - http://docwiki.embarcadero.com/RADStudio/Berlin/en/Data_Type_Mapping_(FireDAC)
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) | 관리자 | 2021.01.19 | 14420 |
공지 | [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) | 관리자 | 2020.11.16 | 13057 |
공지 | [10.4 시드니] What's NEW! 신기능 자세히 보기 | 관리자 | 2020.05.27 | 15569 |
공지 | RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 | 관리자 | 2018.10.23 | 21092 |
공지 | [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] | 관리자 | 2017.02.06 | 22324 |
공지 | [전체 목록] 이 달의 기술자료 & 기술레터 | 관리자 | 2017.02.06 | 17974 |
공지 | RAD스튜디오(델파이, C++빌더) - 시작하기 [1] | 관리자 | 2015.06.30 | 38263 |
공지 | RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) | 험프리 | 2014.01.16 | 173773 |