SQL에서 C로: 연-월 간격
연도별 간격 ODBC SQL 데이터 형식에 대한 식별자는 다음과 같습니다.
- SQL_INTERVAL_MONTH
- SQL_INTERVAL_YEAR
- SQL_INTERVAL_YEAR_TO_MONTH
다음 표에서는 연도별 간격 SQL 데이터를 변환할 수 있는 ODBC C 데이터 형식을 보여줍니다. 테이블의 열 및 용어에 대한 설명은 SQL에서 C 데이터 형식으로 데이터 변환을 참조 하세요.
C 형식 식별자 | 테스트 | TargetValuePtr | StrLen_or_IndPtr | SQLSTATE |
---|---|---|---|---|
SQL_C_INTERVAL_MONTH[a] SQL_C_INTERVAL_YEAR[a] SQL_C_INTERVAL_YEAR_TO_MONTH[a] |
후행 필드 부분이 잘리지 않음 잘린 후행 필드 부분 대상의 선행 정밀도는 원본의 데이터를 보유할 만큼 크지 않습니다. |
데이터 잘린 데이터 Undefined |
데이터 길이(바이트) 데이터 길이(바이트) Undefined |
해당 없음 01S07 22015 |
SQL_C_STINYINT[b] SQL_C_UTINYINT[b] SQL_C_USHORT[b] SQL_C_SHORT[b] SQL_C_SLONG[b] SQL_C_ULONG[b] SQL_C_NUMERIC[b] SQL_C_BIGINT[b] |
간격 정밀도는 단일 필드였고 데이터는 잘림 없이 변환되었습니다. 간격 정밀도는 단일 필드이고 전체 잘림 간격 정밀도가 단일 필드가 아니었습니다. |
데이터 잘린 데이터 Undefined |
C 데이터 형식의 크기 데이터 길이(바이트) C 데이터 형식의 크기 |
해당 없음 22003 22015 |
SQL_C_BINARY | 데이터의 <바이트 길이 = BufferLength Data >BufferLength의 바이트 길이 |
데이터 Undefined |
데이터 길이(바이트) Undefined |
해당 없음 22003 |
SQL_C_CHAR | 문자 바이트 길이 <BufferLength 전체(소수 자릿수가 아님) 숫자 BufferLength의 <수 소수 자릿수가 아닌 전체 숫자 >= BufferLength |
데이터 잘린 데이터 Undefined |
C 데이터 형식의 크기 C 데이터 형식의 크기 Undefined |
해당 없음 01004 22003 |
SQL_C_WCHAR | 문자 길이 <BufferLength 전체(소수 자릿수가 아님) 숫자 BufferLength의 <수 소수 자릿수가 아닌 전체 숫자 >= BufferLength |
데이터 잘린 데이터 Undefined |
C 데이터 형식의 크기 C 데이터 형식의 크기 Undefined |
해당 없음 01004 22003 |
[a] 연도-월 간격 SQL 형식을 모든 연도-월 간격 C 형식으로 변환할 수 있습니다.
[b] 간격 전체 자릿수가 단일 필드(YEAR 또는 MONTH 중 하나)인 경우 간격 SQL 형식을 정확한 숫자(SQL_C_STINYINT, SQL_C_UTINYINT, SQL_C_USHORT, SQL_C_SHORT, SQL_C_SLONG, SQL_C_ULONG 또는 SQL_C_NUMERIC)로 변환할 수 있습니다.
기본 변환
간격 SQL 형식의 기본 변환은 해당 C 간격 데이터 형식으로 변환됩니다. 그런 다음 애플리케이션은 열 또는 매개 변수(또는 ARD의 적절한 레코드에서 SQL_DESC_DATA_PTR 필드를 설정)를 바인딩하여 초기화된 SQL_INTERVAL_STRUCT 구조를 가리키거나 SQLGetData 호출에서 SQL_ INTERVAL_STRUCT 구조체에 대한 포인터를 TargetValuePtr 인수로 전달합니다.