資料類型使用方式
SQL Server Native Client ODBC 驅動程式和 SQL Server 提供下列的資料類型用法。
資料類型 |
限制 |
---|---|
日期常值 |
當日期常値儲存於 SQL_TYPE_TIMESTAMP 資料行 ( datetime 或 smalldatetime 的 SQL Server 資料類型) 時,具有 12:00:00.000 A.M. 的時間値。 |
money 和 smallmoney |
money 和 smallmoney 資料類型只有整數部分是有效的。如果在資料類型轉換時截斷了 SQL money 資料的小數部分,則 SQL Server Native Client ODBC 驅動程式會傳回警告,而不是錯誤。 |
SQL_BINARY (可為 Null) |
連接到 SQL Server 6.0 版和更早版本時,如果 SQL_BINARY 資料行可為 Null,則儲存在資料來源中的資料就不會以零進行填補。從此類資料行擷取資料時,SQL Server Native Client ODBC 驅動程式會在資料右側以零進行填補。不過,在 SQL Server 所執行的作業 (例如串連) 中建立的資料就沒有此類填補。 此外,當資料是放在 SQL Server 6.0 或更早版本之執行個體的此類資料行中,且資料太長而無法放入資料行時,SQL Server 就會從右側截斷資料。
附註
SQL Server Native Client ODBC 驅動程式不支援與 SQL Server 6.5 和更早版本的連接。
|
SQL_CHAR (截斷) |
如果是連接到 SQL Server 6.0 和更早版本的執行個體,而且資料是放在 SQL_CHAR 資料行中,則在資料太長無法放入資料行時,SQL Server 會在未提供警告的情況下從右側截斷資料。
附註
SQL Server Native Client ODBC 驅動程式不支援與 SQL Server 6.5 和更早版本的連接。
|
SQL_CHAR (可為 Null) |
當連接到 SQL Server 6.0 和更早版本時,如果 SQL_CHAR 資料行可為 Null,則儲存在資料來源中的資料就不會以空白進行填補。從此類資料行擷取資料時,SQL Server Native Client ODBC 驅動程式會在資料右側以空白進行填補。不過,在 SQL Server 所執行的作業 (例如串連) 中建立的資料就沒有此類填補。
附註
SQL Server Native Client ODBC 驅動程式不支援與 SQL Server 6.5 和更早版本的連接。
|
SQL_LONGVARBINARY、SQL_LONGVARCHAR、SQL_WLONGVARCHAR |
與 SQL Server 6.x 和更新版本的執行個體連接時,完全支援 (使用 WHERE 子句) 具有 SQL_LONGVARBINARY、SQL_LONGVARCHAR 或 SQL_WLONGVARCHAR 資料類型的資料行更新,此種更新作業會影響多個資料列。當連接到 SQL Server 4.2x 的執行個體時,如果更新所影響的資料列多於一個,就會傳回 S1000 錯誤「部分插入/更新。文字或影像資料行的插入/更新未成功」。
附註
SQL Server Native Client ODBC 驅動程式不支援與 SQL Server 6.5 和更早版本的連接。
|
字串函數參數 |
字串函數的 string_exp 參數必須是 SQL_CHAR 或 SQL_VARCHAR 資料類型。字串函數中不支援 SQL_LONG_VARCHAR 資料類型。count 參數必須少於或等於 8,000,因為 SQL_CHAR 和 SQL_VARCHAR 資料類型受限於 8,000 字元的最大長度。 |
時間常值 |
當時間常値儲存於 SQL_TYPE_TIMESTAMP 資料行 ( datetime 或 smalldatetime 的 SQL Server 資料類型) 時,具有 January 1, 1900 的日期値。 |
timestamp |
只有 NULL 値可以用手動方式插入至 timestamp 資料行。不過,因為 timestamp 資料行會由 SQL Server 自動更新,所以 NULL 値會遭到覆寫。 |
tinyint |
SQL Server tinyint 資料類型不帶正負號。tinyint 資料行依預設會繫結到 SQL_C_UTINYINT 資料類型的變數。 |
別名資料類型 |
當連接到 SQL Server 4.2x 的執行個體時,ODBC 驅動程式會將 NULL 加入至沒有明確宣告資料行 Null 屬性的資料行定義,因此會忽略儲存在別名資料類型定義中的 Null 屬性。 當連接到 SQL Server 4.2x 的執行個體時,具有別名資料類型的資料行並擁有 char 或 binary 基底資料類型且沒有宣告任何 Null 屬性的資料行,會建立為 varchar 或 varbinary 資料類型。SQLColAttribute、SQLColumns 和 SQLDescribeCol 會傳回 SQL_VARCHAR 或 SQL_VARBINARY 當做這些資料行的資料類型。從這些資料行所擷取的資料不會進行填補。
附註
SQL Server Native Client ODBC 驅動程式不支援與 SQL Server 6.5 和更早版本的連接。
|
LONG 資料類型 |
data-at-execution 參數僅能用於 SQL_LONGVARBINARY 和 SQL_LONGVARCHAR 資料類型。 |
大型值類型 |
SQL Server Native Client ODBC 驅動程式會在接受或傳回 ODBC SQL 資料類型的 API 中,將 varchar(max)、varbinary(max) 和 nvarchar(max) 類型分別公開為 SQL_VARCHAR、SQL_VARBINARY 和 SQL_WVARCHAR。 |
使用者定義型別 (UDT) |
UDT 資料行會對應為 SQL_SS_UDT。如果 UDT 資料行使用 UDT 的 ToString() 或 ToXMLString() 方法或是透過 CAST/CONVERT 函數而明確地對應到 SQL 陳述式中的其他類型,則結果集內的資料行類型會反映出此資料行轉換成的實際類型。 SQL Server Native Client ODBC 驅動程式只能以二進位繫結到 UDT 資料行。SQL Server 只支援 SQL_SS_UDT 和 SQL_C_BINARY 資料類型之間的轉換。 |
XML |
SQL Server 會自動將 XML 轉換為 Unicode 文字。XML 類型會對應為 SQL_SS_XML。 |