// TIMESTAMP 변수 선언 & 초기화
TIMESTAMP_STRUCT tmTime;
tmTime.year = 2011;
tmTime.month = 7;
tmTime.day = 1;
tmTime.hour = 12;
tmTime.minute = 10;
tmTime.second = 30;
tmTime.fraction = 0; // 주의!> 무조건 0 으로 설정한다.
SQLLEN nParamLen = 0;
// 매개변수 바인딩
SQLBindParameter(
hSTMT, // 명령 핸들
1, // 매개변수 번호
SQL_PARAM_INPUT, // INPUT / OUTPUT / INPUT_OUTPUT
SQL_C_TYPE_TIMESTAMP, // [고정] 값 타입(C 타입 ID)
SQL_TYPE_TIMESTAMP, // [고정] 파라미터 타입(SQL 타입 ID)
SQL_TIMESTAMP_LEN, // [고정] 파라미터 크기(기본값: 19, 'yyyy-mm-dd hh:mm:ss')
3, // [고정] 시간 데이터 중 밀리초의 자리수
&tmTime, // 파라미터에 연결될 변수 포인터
sizeof(TIMESTAMP_STRUCT), // [고정] 파라미터에 연결될 변수의 크기
&nParamLen // 반환값(길이, 상태)이 저장될 변수 포인터
);
TIMESTAMP_STRUCT 구조체의
fraction 값이 0이 아닐 경우 ODBC 오류가 발생한다.
오류 메시지
[22008]: [Microsoft][ODBC SQL Server Driver] 날짜/시간 필드 오버플로
참고 1>
http://www.tech-archive.net/Archive/SQL-Server/microsoft.public.sqlserver.odbc/2006-08/msg00069.html
참고 2>
http://msdn.microsoft.com/ko-kr/library/bb677267(v=SQL.100).aspx