資料行大小
數值數據類型的數據行(或參數)大小定義為數據行或參數數據類型所使用的數位數目上限,或數據的有效位數。 針對字元類型,這是數據字元的長度;針對二進位數據類型,數據行大小會定義為數據位元組的長度。 針對時間、時間戳和所有間隔數據類型,這是此數據之字元表示法中的字元數。 下表顯示針對每個精簡 SQL 資料類型所定義的數據行大小。
SQL 類型識別碼 | 資料行大小 |
---|---|
所有字元類型[a],[b] | 數據行或參數位元中定義的或最大數據行大小(如SQL_DESC_LENGTH描述元欄位中所包含)。 例如,定義為 CHAR(10) 的單一位元組位元資料行資料行大小為 10。 |
SQL_DECIMAL SQL_NUMERIC | 定義的位數。 例如,定義為 NUMERIC(10,3) 的數據行精確度為 10。 |
SQL_BIT[c] | 1 |
SQL_TINYINT[c] | 3 |
SQL_SMALLINT[c] | 5 |
SQL_INTEGER[c] | 10 |
SQL_BIGINT[c] | 19 (如果已簽署) 或 20 (如果未簽署) |
SQL_REAL[c] | 7 |
SQL_FLOAT[c] | 15 |
SQL_DOUBLE[c] | 15 |
所有二進位類型[a],[b] | 數據行或參數的已定義或最大長度,以位元組為單位。 例如,定義為 BINARY(10) 的數據行長度為 10。 |
SQL_TYPE_DATE[c] | 10 (yyyy-mm-dd 格式的字元數)。 |
SQL_TYPE_TIME[c] | 8(hh-mm-ss 格式的字元數),或 9 + s(hh:mm:ss[.fff...] 格式的字元數,其中 s 是秒精確度)。 |
SQL_TYPE_TIMESTAMP | 16 (yyyy-mm-dd hh:mm 格式的字元數) 19 (yyyy-mm-dd hh:mm:ss 格式的字元數) 或 20 + s(yyyy-mm-dd hh:mm:ss[.fff...] 格式的字元數,其中 s 是秒精確度)。 |
SQL_INTERVAL_SECOND | 其中 p 是間隔前置有效位數,而 s 是秒精確度,p (如果 s=0) 或 p+s+1 (如果 s> 0)。[d] |
SQL_INTERVAL_DAY_TO_SECOND | 其中 p 是間隔前置有效位數, s 是秒精確度,9+p (如果 s=0) 或 10+p+s (如果 s>0)。[d] |
SQL_INTERVAL_HOUR_TO_SECOND | 其中 p 是間隔前置有效位數, s 是秒精確度、6+p (如果 s=0) 或 7+p+s (如果 s>0)。[d] |
SQL_INTERVAL_MINUTE_TO_SECOND | 其中 p 是間隔前置有效位數, s 是秒精確度,3+p (如果 s=0) 或 4+p+s (如果 s>0)。[d] |
SQL_INTERVAL_YEAR SQL_INTERVAL_MONTH SQL_INTERVAL_DAY SQL_INTERVAL_HOUR SQL_INTERVAL_MINUTE | p,其中 p 是間隔前置精確度。[d] |
SQL_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_DAY_TO_HOUR | 3+p,其中 p 是間隔前置精確度。[d] |
SQL_INTERVAL_DAY_TO_MINUTE | 6+p,其中 p 是間隔前置精確度。[d] |
SQL_INTERVAL_HOUR_TO_MINUTE | 3+p,其中 p 是間隔前置精確度。[d] |
SQL_GUID | 36 (aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeeeeeee 格式的字元數) |
[a] 針對在 ODBC 2.0 驅動程式中呼叫 SQLSetParam 的 ODBC 1.0 應用程式,以及針對 ODBC 1.0 驅動程式中呼叫 SQLBindParameter 的 ODBC 2.0 應用程式,當 *StrLen_or_IndPtr針對SQL_LONGVARCHAR或SQL_LONGVARBINARY類型SQL_DATA_AT_EXEC時,ColumnSize 必須設定為要傳送之數據的總長度, 不是此數據表中所定義的有效位數。
[b] 如果驅動程式無法判斷變數類型的數據行或參數長度,則會傳回SQL_NO_TOTAL。
[c] 這個數據類型會忽略 SQLBindParameter 的 ColumnSize 自變數。
[d] 如需間隔數據類型中數據行長度的一般規則,請參閱 本附錄稍早的間隔數據類型長度。
針對資料行 (或參數) 大小傳回的值不會對應至任何一個描述元欄位中的值。 值可能來自SQL_DESC_PRECISION或SQL_DESC_LENGTH欄位,視數據類型而定,如下表所示。
SQL 類型 | 對應至 的描述項欄位 數據行或參數大小 |
---|---|
所有字元和二進位類型 | LENGTH |
所有數值類型 | PRECISION |
所有日期時間和間隔類型 | LENGTH |
SQL_BIT | LENGTH |