기술 정보
home
채널 소개
home

산술 연산으로 인한 Overflow 해결 방안

문서 유형
장애 해결
분야
관리/환경설정
키워드
ODBC
적용 제품 버전
5F
1 more property

현상

System.OverflowException: 산술 연산으로 인해 오버플로가 발생했습니다.

발생위치

System.Data.Odbc.OdbcStatementHandle.RowCount(SQLLEN& rowCount)
System.Data.Odbc.OdbcDataReader.GetRowCount()
System.Data.Odbc.OdbcDataReader.FirstResult()
System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod)
System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader)
System.Data.Odbc.OdbcCommand.ExecuteReader(CommandBehavior behavior)
kolonBatch.Form1.getUserInformation()

적용사양

tbodbc_driver_installer_5_64.exe -c ODBC 버전 This driver is 64 bit file. Version : 5, 0, 0, 77652 이상

원인

Tibero ODBC는 cli 기반으로 개발되어 sql integer 내부적으로 long 타입을 사용합니다. 이 때 Windows에서 long의 4byte 스펙 차이로 인해 overflow가 발생할 수 있습니다.

해결

ODBC 연동 시, Connection String에 "TYPE=ODBC " 속성을 추가하여 설정합니다.
Connect String -> "Driver={Tibero 5 ODBC Driver};SERVER=192.168.XX.XXX;PORT=8629;DataBase=tibero;UID=tibero;PWD=tmax;TYPE=ODBC;";
SQL
복사