C/C++ C语言的数据类型和ODBC数据类型间的转换关系
ODBC中定义的数据类型和SQL语言中数据类型的对应关系
ODBC数据类型名称 SQL语言数据类型名称
SQL_CHAR HAR(n)
SQL_VARCHAR ARCHAR(n)
SQL_LONGVARCHAR ONG VARCHAR
SQL_WCHAR CHAR(n)
SQL_WVARCHAR ARWCHAR(n)
SQL_WLONGVARCHAR ONGWVARCHAR
SQL_DECIMAL ECIMAL(p,s)
SQL_NUMERIC UMERIC(p,s)
SQL_SMALLINT MALLINT
SQL_INTEGER NTEGER
SQL_REAL EAL
SQL_FLOAT LOAT(p)
SQL_DOUBLE OUBLE PRECISION
SQL_BIT IT
SQL_TINYINT INYINT
SQL_BIGINT IGINT
SQL_BINARY INARY(n)
SQL_VARBINARY ARBINARY(n)
SQL_LONGVARBINARY ONG VARBINARY
SQL_TYPE_DATE[6] ATE
SQL_TYPE_TIME[6] IME(p)
SQL_TYPE_TIMESTAMP[6] IMESTAMP(p)
SQL_GUID UID
C语言中数据类型和ODBC中定义的数据类型的对应关系
C语言数据类型名称 ODBC 数据类型定义 C语言实际类型
SQL_C_CHAR SQLCHAR * unsigned char *
SQL_C_SSHORT SQLSMALLINT short int
SQL_C_USHORT SQLUSMALLINT unsigned short int
SQL_C_SLONG SQLINTEGER long int
SQL_C_ULONG SQLUINTEGER unsigned long int
SQL_C_FLOAT SQLREAL float
SQL_C_DOUBLE SQLDOUBLE, SQLFLOAT double
SQL_C_BIT SQLCHAR unsigned char
SQL_C_STINYINT SQLSCHAR signed char
SQL_C_UTINYINT SQLCHAR unsigned char
SQL_C_SBIGINT SQLBIGINT _int64[h]
SQL_C_UBIGINT SQLUBIGINT unsigned _int64
SQL_C_BINARY SQLCHAR * unsigned char *
SQL_C_BOOKMARK BOOKMARK unsigned long int
SQL_C_VARBOOKMARK SQLCHAR * unsigned char *
SQL_C_TYPE_DATE SQL_DATE_STRUCT struct tagDATE_STRUCT {
SQLSMALLINT year;
SQLUSMALLINT month;
SQLUSMALLINT day;
} DATE_STRUCT;
SQL_C_TYPE_TIME SQL_TIME_STRUCT struct tagTIME_STRUCT {
SQLUSMALLINT hour;
SQLUSMALLINT minute;
SQLUSMALLINT second;
} TIME_STRUCT;
SQL_C_TYPE_TIMESTAMP SQL_TIMESTAMP_STRUCT struct tagTIMESTAMP_STRUCT {
SQLSMALLINT year;
SQLUSMALLINT month;
SQLUSMALLINT day;
SQLUSMALLINT hour;
SQLUSMALLINT minute;
SQLUSMALLINT second;
SQLUINTEGER fraction;
} TIMESTAMP_STRUCT;
SQL_C_NUMERIC SQL_NUMERIC_STRUCT struct tagSQL_NUMERIC_STRUCT {
SQLCHAR precision;
SQLSCHAR scale;
SQLCHAR sign;
SQLCHAR val[SQL_MAX_NUMERIC_LEN];
} SQL_NUMERIC_STRUCT;
SQL_C_GUID SQLGUID struct tagSQLGUID {
DWORD Data1;
WORD Data2;
WORD Data3;
BYTE Data4[8];
} SQLGUID;