ITableDefinition 中的資料類型對應
使用 ITableDefinition::CreateTable 函數來建立資料表時,SQL Server Native Client OLE DB 提供者取用者可以在傳遞之 DBCOLUMNDESC 陣列的 pwszTypeName 成員中指定 SQL Server 資料類型。 如果取用者依照名稱來指定資料行的資料類型,系統就會忽略 OLE DB 資料對應 (由 DBCOLUMNDESC 結構的 wType 成員代表)。
使用 DBCOLUMNDESC 結構 wType 成員來指定具有 OLE DB 資料類型的新資料行資料類型時,SQL Server Native Client OLE DB 提供者會依照下列方式對應 OLE DB 資料類型。
OLE DB 資料類型 |
SQL Server 資料類型 |
其他資訊 |
---|---|---|
DBTYPE_BOOL |
bit |
|
DBTYPE_BYTES |
binary、varbinary、image 或 varbinary(max) |
SQL Server Native Client OLE DB 提供者會檢查 DBCOLUMNDESC 結構的 ulColumnSize 成員。 SQL Server Native Client OLE DB 提供者會根據此值以及 SQL Server 執行個體的版本,將此類型對應至 image。 如果 ulColumnSize 的值小於 binary 資料類型資料行的最大長度,SQL Server Native Client OLE DB 提供者就會檢查 DBCOLUMNDESC rgPropertySets 成員。 如果 DBPROP_COL_FIXEDLENGTH 是 VARIANT_TRUE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 binary。 如果屬性值是 VARIANT_FALSE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 varbinary。 不論是哪一種情況,DBCOLUMNDESC ulColumnSize 成員都會決定所建立之 SQL Server 資料行的寬度。 |
DBTYPE_CY |
money |
|
DBTYPE_DBTIMESTAMP |
datetime |
|
DBTYPE_GUID |
uniqueidentifier |
|
DBTYPE_I2 |
smallint |
|
DBTYPE_I4 |
int |
|
DBTYPE_NUMERIC |
numeric |
SQL Server Native Client OLE DB 提供者會檢查 DBCOLUMDESC bPrecision 和 bScale 成員來決定 numeric 資料行的有效位數和小數位數。 |
DBTYPE_R4 |
real |
|
DBTYPE_R8 |
float |
|
DBTYPE_STR |
char、varchar、text 或 varchar(max) |
SQL Server Native Client OLE DB 提供者會檢查 DBCOLUMNDESC 結構的 ulColumnSize 成員。 SQL Server Native Client OLE DB 提供者會根據此值以及 SQL Server 執行個體的版本,將此類型對應至 text。 如果 ulColumnSize 的值小於多位元組字元資料類型資料行的最大長度,SQL Server Native Client OLE DB 提供者就會檢查 DBCOLUMNDESC rgPropertySets 成員。 如果 DBPROP_COL_FIXEDLENGTH 是 VARIANT_TRUE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 char。 如果屬性值是 VARIANT_FALSE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 varchar。 不論是哪一種情況,DBCOLUMNDESC ulColumnSize 成員都會決定所建立之 SQL Server 資料行的寬度。 |
DBTYPE_UDT |
UDT |
當需要 UDT 資料行時,下列資訊會用於 ITableDefinition::CreateTable 所使用的 DBCOLUMNDESC 結構中:
|
DBTYPE_UI1 |
tinyint |
|
DBTYPE_WSTR |
nchar、nvarchar、ntext 或 nvarchar(max) |
SQL Server Native Client OLE DB 提供者會檢查 DBCOLUMNDESC 結構的 ulColumnSize 成員。 SQL Server Native Client OLE DB 提供者會根據此值,將此類型對應至 ntext。 如果 ulColumnSize 的值小於 Unicode 字元資料類型資料行的最大長度,SQL Server Native Client OLE DB 提供者就會檢查 DBCOLUMNDESC rgPropertySets 成員。 如果 DBPROP_COL_FIXEDLENGTH 是 VARIANT_TRUE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 nchar。 如果屬性值是 VARIANT_FALSE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 nvarchar。 不論是哪一種情況,DBCOLUMNDESC ulColumnSize 成員都會決定所建立之 SQL Server 資料行的寬度。 |
DBTYPE_XML |
XML |
[!附註]
建立新的資料表時,SQL Server Native Client OLE DB 提供者只會對應上表中指定的 OLE DB 資料類型列舉值。 嘗試建立含有任何其他 OLE DB 資料類型之資料行的資料表都會產生錯誤。