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] |
結尾欄位部分未截斷 結尾欄位部分截斷 目標的主要精確度不夠大,無法保存來源的資料 |
資料 截斷的資料 未定義 |
以位元組為單位的資料長度 以位元組為單位的資料長度 未定義 |
n/a 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] |
間隔有效位數是單一欄位,且資料未經截斷即可轉換 間隔有效位數是單一欄位並截斷整個 間隔有效位數不是單一欄位 |
資料 截斷的資料 未定義 |
C 資料類型的大小 以位元組為單位的資料長度 C 資料類型的大小 |
n/a 22003 22015 |
SQL_C_BINARY | 位元組長度的資料 < = BufferLength 資料 > BufferLength 的位元組長度 |
資料 未定義 |
以位元組為單位的資料長度 未定義 |
n/a 22003 |
SQL_C_CHAR | 字元位元組長度 < BufferLength 整數數(而不是小數)位數 < BufferLength 整數數 (而不是小數) 位數 > = BufferLength |
資料 截斷的資料 未定義 |
C 資料類型的大小 C 資料類型的大小 未定義 |
n/a 01004 22003 |
SQL_C_WCHAR | 字元長度 < BufferLength 整數數(而不是小數)位數 < BufferLength 整數數 (而不是小數) 位數 > = BufferLength |
資料 截斷的資料 未定義 |
C 資料類型的大小 C 資料類型的大小 未定義 |
n/a 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 interval 資料類型。 然後,應用程式會系結資料行或參數(或設定 ARD 適當記錄中的SQL_DESC_DATA_PTR欄位),以指向初始化的SQL_INTERVAL_STRUCT結構(或將指標傳遞至SQL_ INTERVAL_STRUCT結構的指標,做為 對 SQLGetData 的呼叫 中的 TargetValuePtr 引數)。