C 데이터 형식

ODBC C 데이터 형식은 애플리케이션에 데이터를 저장하는 데 사용되는 C 버퍼의 데이터 형식을 나타냅니다.

모든 드라이버는 모든 C 데이터 형식을 지원해야 합니다. 모든 드라이버는 지원하는 SQL 형식을 변환할 수 있는 모든 C 형식을 지원해야 하고 모든 드라이버는 하나 이상의 문자 SQL 형식을 지원해야 하기 때문에 필요합니다. SQL 형식을 모든 C 형식으로 변환할 수 있으므로 모든 드라이버는 모든 C 형식을 지원해야 합니다.

C 데이터 형식은 TargetType 인수가 있는 SQLBindColSQLGetData 함수와 ValueType 인수가 있는 SQLBindParameter 함수에 지정됩니다. SQLSetDescField를 호출하여 ARD 또는 APD의 SQL_DESC_CONCISE_TYPE 필드를 설정하거나 Type 인수(필요한 경우 SubType 인수) DescriptorHandle 인수가 ARD 또는 APD의 핸들로 설정된 SQLSetDescRec를 호출하여 지정할 수도 있습니다.

다음 표에서는 C 데이터 형식에 대한 유효한 형식 식별자를 나열합니다. 표에는 각 식별자에 해당하는 ODBC C 데이터 형식과 이 데이터 형식의 정의도 나열되어 있습니다.

C 형식 식별자 ODBC C 형식 정의 C 형식
SQL_C_CHAR Sqlchar* unsigned char *
SQL_C_WCHAR SQLWCHAR * Wchar_t*
SQL_C_SSHORT[j] SQLSMALLINT short int
SQL_C_USHORT[j] SQLUSMALLINT unsigned short int
SQL_C_SLONG[j] SQLINTEGER long int
SQL_C_ULONG[j] SQLUINTEGER unsigned long int
SQL_C_FLOAT SQLREAL 부동
SQL_C_DOUBLE SQLDOUBLE, SQLFLOAT double
SQL_C_BIT Sqlchar unsigned char
SQL_C_STINYINT[j] SQLSCHAR signed char
SQL_C_UTINYINT[j] Sqlchar unsigned char
SQL_C_SBIGINT SQLBIGINT _int64[h]
SQL_C_UBIGINT SQLUBIGINT unsigned _int64[h]
SQL_C_BINARY Sqlchar* unsigned char *
SQL_C_BOOKMARK[i] 책갈피 unsigned long int[d]
SQL_C_VARBOOKMARK Sqlchar* unsigned char *
모든 C 간격 데이터 형식 SQL_INTERVAL_STRUCT 이 부록의 뒷부분에 있는 C 간격 구조 섹션을 참조하세요.

C 형식 식별자 SQL_C_TYPE_DATE[c]

ODBC C typedef SQL_DATE_STRUCT

C 형식

struct tagDATE_STRUCT {  
   SQLSMALLINT year;  
   SQLUSMALLINT month;  
   SQLUSMALLINT day;    
} DATE_STRUCT;[a]  

C 형식 식별자 SQL_C_TYPE_TIME[c]

ODBC C typedef SQL_TIME_STRUCT

C 형식

struct tagTIME_STRUCT {  
   SQLUSMALLINT hour;  
   SQLUSMALLINT minute;  
   SQLUSMALLINT second;  
} TIME_STRUCT;[a]  

C 형식 식별자 SQL_C_TYPE_TIMESTAMP[c]

ODBC C typedef SQL_TIMESTAMP_STRUCT

C 형식

struct tagTIMESTAMP_STRUCT {  
   SQLSMALLINT year;  
   SQLUSMALLINT month;  
   SQLUSMALLINT day;  
   SQLUSMALLINT hour;  
   SQLUSMALLINT minute;  
   SQLUSMALLINT second;  
   SQLUINTEGER fraction;[b]   
} TIMESTAMP_STRUCT;[a]  

C 형식 식별자 SQL_C_NUMERIC

ODBC C typedef SQL_NUMERIC_STRUCT

C 형식

struct tagSQL_NUMERIC_STRUCT {  
   SQLCHAR precision;  
   SQLSCHAR scale;  
   SQLCHAR sign[g];  
   SQLCHAR val[SQL_MAX_NUMERIC_LEN];[e], [f]   
} SQL_NUMERIC_STRUCT;  

C 형식 식별자 SQL_C_GUID

ODBC C typedef SQLGUID

C 형식

struct tagSQLGUID {  
   DWORD Data1;  
   WORD Data2;  
   WORD Data3;  
   BYTE Data4[8];  
} SQLGUID;[k]  

[a] datetime C 데이터 형식의 연도, 월, 일, 시간, 분 및 두 번째 필드의 값은 그레고리오력의 제약 조건을 따라야 합니다. (참조) 이 부록의 뒷부분에 있는 그레고리오력 의 제약 조건입니다.)

[b] 분수 필드의 값은 1초의 수십억 번째 수이며 0에서 999,999,999(10억 미만)의 범위입니다. 예를 들어 반초의 분수 필드 값은 500,000,000이고, 1/1000초(1밀리초)는 1,000,000이고, 100만분의 1(마이크로초)은 1,000이며, 1/10억분의 1(1나노초)입니다.

[c] ODBC 2에서.x, C 날짜, 시간 및 타임스탬프 데이터 형식은 SQL_C_DATE, SQL_C_TIME 및 SQL_C_TIMESTAMP.

[d] ODBC 3*.x* 애플리케이션은 SQL_C_BOOKMARK 아니라 SQL_C_VARBOOKMARK 사용해야 합니다. ODBC 3*.x* 애플리케이션이 ODBC 2에서 작동하는 경우x 드라이버, ODBC 3*.x* 드라이버 관리자는 SQL_C_VARBOOKMARK SQL_C_BOOKMARK 매핑합니다.

[e] 소수점수는 SQL_NUMERIC_STRUCT 구조체의 val 필드에 크기가 조정된 정수로, little endian 모드(가장 왼쪽 바이트는 최단 바이트)로 저장됩니다. 예를 들어 소수 자릿수가 4인 숫자 10.001 base 10은 100010의 정수로 조정됩니다. 16진수 형식의 186AA이므로 SQL_NUMERIC_STRUCT 값은 "AA 86 01 00 00 ... 00"입니다. SQL_MAX_NUMERIC_LEN #define 정의한 바이트 수입니다.

SQL_NUMERIC_STRUCT 대한 자세한 내용은 HOWTO: SQL_NUMERIC_STRUCT 사용하여 숫자 데이터 검색을 참조하세요.

[f] SQL_C_NUMERIC 데이터 형식의 전체 자릿수 및 배율 필드는 애플리케이션의 입력 및 드라이버에서 애플리케이션으로의 출력에 사용됩니다. 드라이버가 SQL_NUMERIC_STRUCT 숫자 값을 쓰면 해당 드라이버별 기본값을 전체 자릿수 필드의 값으로 사용하고 배율 필드에 대한 애플리케이션 설명자의 SQL_DESC_SCALE 필드에 값을 사용합니다(기본값은 0). 애플리케이션은 애플리케이션 설명자의 SQL_DESC_PRECISION 및 SQL_DESC_SCALE 필드를 설정하여 정밀도 및 크기 조정에 대한 고유한 값을 제공할 수 있습니다.

[g] 부호 필드는 양수이면 1이고 음수이면 0입니다.

[h] _int64 일부 컴파일러에서 제공되지 않을 수 있습니다.

[i] _SQL_C_BOOKMARK ODBC 3*.x*에서 더 이상 사용되지 않습니다.

[j] _SQL_C_SHORT, SQL_C_LONG 및 SQL_C_TINYINT SQL_C_SSHORT 및 SQL_C_USHORT, SQL_C_SLONG 및 SQL_C_ULONG, SQL_C_STINYINT 및 SQL_C_UTINYINT 서명 및 서명되지 않은 형식으로 ODBC에서 대체되었습니다. ODBC 2에서 작동해야 하는 ODBC 3*.x* 드라이버입니다.x 애플리케이션은 호출되면 드라이버 관리자가 드라이버에 전달하므로 SQL_C_SHORT, SQL_C_LONG 및 SQL_C_TINYINT 지원해야 합니다.

[k] SQL_C_GUID SQL_CHAR 또는 SQL_WCHAR 변환할 수 있습니다.

이 섹션에서는 다음 항목을 다룹니다.

참고 항목

ODBC의 C 데이터 유형