현상
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
복사