資料類型識別碼和描述項

本附錄稍早的 SQL 資料類型 C 資料類型區段中所列的資料類型是「簡潔」資料類型 :每個識別碼都會參考單一資料類型。 識別碼與資料類型之間有一對一對應。 不過,在所有情況下,描述項都不會使用單一值來識別資料類型。 在某些情況下,他們會使用「詳細資訊」資料類型和類型副程式代碼。 對於 datetime 和 interval 資料類型以外的所有資料類型,詳細資訊類型識別碼與精簡類型識別碼相同,且SQL_DESC_DATETIME_INTERVAL_CODE中的值等於 0。 不過,對於 datetime 和 interval 資料類型,詳細資訊類型(SQL_DATETIME或SQL_INTERVAL)會儲存在SQL_DESC_TYPE中,精簡型別會儲存在SQL_DESC_CONCISE_TYPE中,而且每個精簡類型的子碼會儲存在SQL_DESC_DATETIME_INTERVAL_CODE中。 設定其中一個欄位會影響其他欄位。 如需這些欄位的詳細資訊,請參閱 SQLSetDescField 函式描述。

當某些資料類型設定SQL_DESC_TYPE或SQL_DESC_CONCISE_TYPE欄位時,SQL_DESC_DATETIME_INTERVAL_PRECISION、SQL_DESC_LENGTH、SQL_DESC_PRECISION和SQL_DESC_SCALE欄位會自動設定為預設值,適用于資料類型。 如需詳細資訊,請參閱 SQLSetDescField SQL_DESC_TYPE欄位的描述。 如果未適當設定任何預設值,應用程式應該透過對 SQLSetDescField 的呼叫 明確設定描述項欄位。

下表顯示每個日期時間和間隔 SQL 和 C 類型識別碼的精簡類型識別碼、詳細資訊類型識別碼和類型子碼。 正如下表所指出的,對於 datetime 和 interval 資料類型,SQL_DESC_TYPE和SQL_DESC_DATETIME_INTERVAL_CODE欄位在 SQL 資料類型(在實作描述元中)和 C 資料類型的資訊清單常數都具有相同的資訊清單常數(在應用程式描述元中)。

精簡的 SQL 類型 精簡的 C 類型 詳細資訊類型 DATETIME_INTERVAL_CODE
SQL_TYPE_DATE SQL_C_TYPE_DATE SQL_DATETIME SQL_CODE_DATE
SQL_TYPE_TIME SQL_C_TYPE_TIME SQL_DATETIME SQL_CODE_TIME
SQL_TYPE_TIMESTAMP SQL_C_TYPE_TIMESTAMP SQL_DATETIME SQL_CODE_TIMESTAMP
SQL_INTERVAL_MONTH SQL_C_INTERVAL_MONTH SQL_INTERVAL SQL_CODE_MONTH
SQL_INTERVAL_YEAR SQL_C_INTERVAL_YEAR SQL_INTERVAL SQL_CODE_YEAR
SQL_INTERVAL_YEAR_TO_MONTH SQL_C_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL SQL_CODE_YEAR_TO_MONTH
SQL_INTERVAL_DAY SQL_C_INTERVAL_DAY SQL_INTERVAL SQL_CODE_DAY
SQL_INTERVAL_HOUR SQL_C_INTERVAL_HOUR SQL_INTERVAL SQL_CODE_HOUR
SQL_INTERVAL_MINUTE SQL_C_INTERVAL_MINUTE SQL_INTERVAL SQL_CODE_MINUTE
SQL_INTERVAL_SECOND SQL_C_INTERVAL_SECOND SQL_INTERVAL SQL_CODE_SECOND
SQL_INTERVAL_DAY_TO_HOUR SQL_C_INTERVAL_DAY_TO_HOUR SQL_INTERVAL SQL_CODE_DAY_TO_HOUR
SQL_INTERVAL_DAY_TO_MINUTE SQL_C_INTERVAL_DAY_TO_MINUTE SQL_INTERVAL SQL_CODE_DAY_TO_MINUTE
SQL_INTERVAL_DAY_TO_SECOND SQL_C_INTERVAL_DAY_TO_SECOND SQL_INTERVAL SQL_CODE_DAY_TO_SECOND
SQL_INTERVAL_HOUR_TO_MINUTE SQL_C_INTERVAL_HOUR_TO_MINUTE SQL_INTERVAL SQL_CODE_HOUR_TO_MINUTE
SQL_INTERVAL_HOUR_TO_SECOND SQL_C_INTERVAL_HOUR_TO_SECOND SQL_INTERVAL SQL_CODE_HOUR_TO_SECOND
SQL_INTERVAL_MINUTE_TO_SECOND SQL_C_INTERVAL_MINUTE_TO_SECOND SQL_INTERVAL SQL_CODE_MINUTE_TO_SECOND