共用方式為


C 到 SQL:數值

數值 ODBC C 資料類型的識別碼如下:

SQL_C_STINYINT

SQL_C_SLONG

SQL_C_UTINYINT

SQL_C_ULONG

SQL_C_TINYINT

SQL_C_LONG

SQL_C_SSHORT

SQL_C_FLOAT

SQL_C_USHORT

SQL_C_DOUBLE

SQL_C_SHORT

SQL_C_NUMERIC

SQL_C_SBIGINT

SQL_C_UBIGINT

下表顯示可轉換數值 C 資料的 ODBC SQL 資料類型。 如需資料表中資料行和詞彙的說明,請參閱 將資料從 C 轉換成 SQL 資料類型

SQL 類型識別碼 測試 SQLSTATE
SQL_CHAR

SQL_VARCHAR

SQL_LONGVARCHAR
數位 < 數 = 資料行位元組長度

位數 > 資料行位元組長度
n/a

22001
SQL_WCHAR

SQL_WVARCHAR

SQL_WLONGVARCHAR
字元 < 數 = 資料行字元長度

字元 > 數 資料行字元長度
n/a

22001
SQL_DECIMAL[b]

SQL_NUMERIC[b]

SQL_TINYINT[b]

SQL_SMALLINT[b]

SQL_INTEGER[b]

SQL_BIGINT[b]
未截斷或小數位數截斷的資料轉換

以截斷整數轉換的資料
n/a

22003
SQL_REAL

SQL_FLOAT

SQL_DOUBLE
資料位於要轉換數位的資料類型範圍內

資料超出要轉換數位的資料類型範圍
n/a

22003
SQL_BIT 資料為 0 或 1

資料大於 0、小於 2 且不等於 1

資料小於 0 或大於或等於 2
n/a

22001

22003
SQL_INTERVAL_YEAR[a]

SQL_INTERVAL_MONTH[a]

SQL_INTERVAL_DAY[a]

SQL_INTERVAL_HOUR[a]

SQL_INTERVAL_MINUTE[a]

SQL_INTERVAL_SECOND[a]
資料未截斷。

資料已截斷。
n/a

22015

[a] 只有精確數值資料類型支援這些轉換(SQL_C_STINYINT、SQL_C_UTINYINT、SQL_C_SSHORT、SQL_C_USHORT、SQL_C_SLONG、SQL_C_ULONG或SQL_C_NUMERIC)。 近似數值資料類型不支援它們(SQL_C_FLOAT或SQL_C_DOUBLE)。 確切的數值 C 資料類型無法轉換成間隔 SQL 類型,其間隔有效位數不是單一欄位。

[b] 針對 「n/a」 案例,當有小數截斷時,驅動程式可能會選擇性地傳回 SQL_SUCCESS_WITH_INFO 和 01S07。

驅動程式會忽略從數值 C 資料類型轉換資料時的長度/指標值,並假設資料緩衝區的大小是數值 C 資料類型的大小。 長度/指標值會在 SQLPutData 中的 StrLen_or_Ind 引數和 SQLBindParameter 中以 StrLen_or_IndPtr 引數 指定的 緩衝區中傳遞 資料緩衝區是以 SQLPutData 中的 DataPtr 引數和 SQLBindParameter 中的 ParameterValuePtr 引數來指定