主機檔案系統的通用結構描述集合

一般架構集合是由主機檔案的受控提供者所執行的架構集合。 您可以藉由呼叫 GetSchema 沒有引數的方法,或使用架構集合名稱 ">metadatacollections" 來查詢 managed 提供者,以判斷支援的架構集合清單。 DataTable這會傳回物件,其中包含支援的架構集合清單、它們各自支援的限制數目,以及它們所使用的識別碼部分數目。

下表說明主機檔案系統的通用架構集合。

資料行

資料行名稱 資料類型 描述
table_catalog String 資料表的目錄。
table_schema String 包含資料表的結構描述。
table_name String 資料表名稱。
column_name String 資料行名稱。
ordinal_position Int16 資料行識別碼。
column_default String 資料行的預設值。
is_nullable String 資料行的 Null 屬性。 若此資料行允許 NULL,其會傳回 YES。 否則,傳回 NO。
data_type String 系統提供的資料類型。
character_maximum_length Int32 – Sql8, Int16 – Sql7 二進位資料、字元資料,或文字和影像資料的最大長度 (以字元為單位)。 否則,就傳回 NULL。
character_octet_length Int32 – SQL8, Int16 – Sql7 二進位資料、字元資料,或文字和影像資料的最大長度 (以位元組為單位)。 否則,就傳回 NULL。
numeric_precision Unsigned Byte 近似數值資料、精確數值資料、整數資料或貨幣資料的有效位數。 否則,就傳回 NULL。
numeric_precision_radix Int16 近似數值資料、精確數值資料、整數資料或貨幣資料的有效位數基數。 否則,就傳回 NULL。
numeric_scale Int32 近似數值資料、精確數值資料、整數資料或貨幣資料的小數位數。 否則,就傳回 NULL。
datetime_precision Int16 datetime 和 SQL-92 interval 資料類型的子類型代碼。 如果是其他資料類型,就傳回 NULL。
character_set_catalog String 若資料行為字元資料或文字資料型別,則傳回 master,表示字元集所在的資料庫。 否則,就傳回 NULL。
character_set_schema String 一律傳回 NULL。
character_set_name String 若此資料行為字元資料或文字資料型別,則傳回字元集的唯一名稱。 否則,就傳回 NULL。
collation_catalog String 若資料行為字元資料或文字資料型別,則傳回 master,表示定義定序的資料庫。 否則,這個資料行就是 NULL。

DataSourceInformation

名稱 類型 Description
CompositeIdentifierSeparatorPattern 字串 符合複合識別項中複合分隔符號的規則運算式。 例如,"\." (SQL Server) 或 "@ | \." (適用於 Oracle)。
複合識別碼通常是用於資料庫物件名稱的內容,例如: pubs. 作者或 pubs@dbo.authors 。
針對 SQL Server 會使用規則運算式 "\."。 針對 OracleClient 則會使用 "@|\."。
若為 OLE DB,請使用 DBLITERAL_CATALOG_SEPARATOR 或 DBLITERAL_SCHEMA_SEPARATOR。
DataSourceProductName 字串 提供者存取的產品名稱,如 "Oracle" 或 "SQLServer"。
DataSourceProductVersion 字串 提供者存取的產品版本,以資料來源原生格式,而不是 Microsoft 格式。
在某些情況下,DataSourceProductVersion 和 DataSourceProductVersionNormalized 是相同的值。 使用 OLE DB 時,這些一律相同,因為它們會對應到基礎原生 API 中的相同函式呼叫。
DataSourceProductVersionNormalized 字串 資料來源的正規化版本,可使用 String.Compare() 進行比較。 它的格式對提供者的所有版本來說都一致,這可以防止版本 10 在版本 1 與版本 2 之間排序。
例如,Oracle 提供者針對其正規化版本使用 nn.nn.nn.nn.nn 格式,如此會使 Oracle 8i 資料來源傳回 08.01.07.04.01。 SQL Server 則使用典型的 Microsoft "nn.nn.nnnn" 格式。
在某些情況下,DataSourceProductVersion 及 DataSourceProductVersionNormalized 將為同一值。 在 OLE DB 的情況下,這些將永遠相同,因為它們對應到基礎原生 API 中的相同函式呼叫。
GroupByBehavior GroupByBehavior 指定 GROUP BY 子句中的資料行與選取清單中的非彙總資料行的關係。
IdentifierPattern String 符合識別項並具有識別項相符值的規則運算式。 例如,[A-Za-z0-9_#$]。
IdentifierCase IdentifierCase 指出是否將非引號識別碼視為區分大小寫。
OrderByColumnsInSelect bool 指定 ORDER BY 子句中的資料行是否必須包含於選取清單中。 True 值表示其必須包含於選取清單中,False 值表示其不必包含於選取清單中。
ParameterMarkerFormat 字串 表示如何格式化參數的格式字串。
如果資料來源支援具名參數,則此字串中的第一個替代符號位置應為要格式化參數名稱的位置。
例如,如果資料來源需要具名引數,並使用 ': ' 做為前置詞,則這會是 ": {0} "。 使用參數名稱 "p1" 對進行格式化時,產生的字串為 ":p1"。
如果資料來源預期參數必須以 ' @ ' 作為前置詞,但名稱已包含它們,則這會是 ' {0} ',而將名為 "@p1" 的參數格式化的結果會是 "@p1"。
針對不需要具名引數的資料來源,並預期使用 '? ' 字元,格式字串可以只指定為 '? ',這會忽略參數名稱。 針對 OLE DB 將傳回 '?'。
ParameterMarkerPattern 字串 符合參數標記的規則運算式。 它具有參數名稱的相符值(如果有的話)。
例如,如果支援具名參數將 '@' 導引字元包括在參數名稱中,則此項將為:“(@[A-Za-z0-9_$#]*)”。
然而,如果支援具名參數以 ‘:’ 做為導引字元,且其不屬於參數名稱的一部分,則此項將為:“:([A-Za-z0-9_$#]*)”。
當然,如果資料來源不支援具名引數,這就是「?」。
ParameterNameMaxLength int 參數名稱的最大長度 (以字元為單位)。 Visual Studio 要求如果支援參數名稱,則最大長度的最小值為 30 個字元。
如果資料來源不支援具名參數,此屬性將傳回零。
ParameterNamePattern 字串 符合有效參數名稱的規則運算式。 不同資料來源對可用於參數名稱的字元具有不同規則。
Visual Studio 要求如果支援參數名稱,則字元 "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}" 為針對參數名稱有效的支援字元集最小值。
QuotedIdentifierPattern 字串 符合引號識別項並具有識別項本身 (不帶有引號) 之相符值的規則運算式。 例如,如果資料來源使用雙引號識別引號識別碼,則這會是: " ( ( [^ \"] | \ "\" ) * ) "。
QuotedIdentifierCase IdentifierCase 指出是否將引號識別碼視為區分大小寫。
StatementSeparatorPattern 字串 符合陳述式分隔符號的規則運算式。
StringLiteralPattern 字串 符合字串常值並具有常值本身之相符值的規則運算式。 例如,如果資料來源使用單引號識別字串,此項為:"('([^']|'')*')"'
SupportedJoinOperators SupportedJoinOperators 指定資料來源支援何種型別的 SQL Join 陳述式。

DataTypes

資料行名稱 資料類型 描述
TypeName 字串 提供者特定的資料型別名稱。
ProviderDbType int 指定參數型別時,應使用之提供者特定的型別值。 例如,SqlDbType.MoneyOracleType.Blob
ColumnSize long 非數值資料行或參數的長度是指提供者為此型別定義的最大值或長度。
若為字元資料,此為資料來源定義的最大或已定義的長度單位。 在 Oracle 中可以指定長度,然後指定某些字元資料型別的實際儲存大小。 如此僅會針對 Oracle 定義長度單位。
若為日期-時間資料型別,則此為表示字串的長度 (假設最大值可以容納分數秒元件的精確度)。
如果資料型別為數字,此為資料型別最大精確度的上限。
CreateFormat 字串 表示如何將此資料行加入資料定義陳述式的格式字串,如 CREATE TABLE。 陣列中 CreateParameter 的每個元素都應該以格式字串中的「參數標記」來表示。
例如,SQL 資料型別 DECIMAL 需要精確度及小數位數。 在此情況下,格式字串會是 "DECIMAL ({0} , {1}) "。
CreateParameters 字串 建立此資料型別的資料行時,必須指定的建立參數。 每個建立參數會以逗號分隔,並按提供時的順序列在字串中。
例如,SQL 資料型別 DECIMAL 需要精確度及小數位數。 在此情況下,建立參數應包含字串 "precision, scale"。
在用來建立有效位數10且小數位數為2之十進位資料行的文字命令中,CreateFormat 資料行的值可能是 DECIMAL ({0} , {1}) 」,而完整的型別規格則為 decimal (10,2) 。
DataType 字串 資料型別之 .NET Framework 型別的名稱。
IsAutoincrementable bool true:此資料類型的值可能會自動遞增。
false:此資料類型的值可能不會自動遞增。
請注意,這僅表示此資料型別的資料行是否自動遞增,而不表示所有此型別的資料行都會自動遞增。
IsBestMatch Bool true-資料類型是資料存放區中所有資料類型與 DataType 資料行中的值所指示的 .NET Framework 資料類型之間的最大相符項。
false-資料類型不是最符合的。
針對 DataType 資料行的值都相同的每個資料列集,IsBestMatch 資料行僅會在一個資料列中設定為 True。
isCaseSensitive bool true-資料類型是字元類型,而且會區分大小寫。

false-資料類型不是字元類型,或不區分大小寫。
IsFixedLength bool true—資料定義語言 (DDL) 所建立之資料類型的資料行是固定長度。

false— DDL 所建立的這個資料類型的資料行是可變長度的。

DBNull.Value—不知道提供者是否會將此欄位對應至固定長度或可變長度的資料行。
IsFixedPrecisionScale bool true:資料類型具有固定的有效位數和小數位數。

false-資料類型沒有固定的有效位數和小數位數。
IsLong bool true:資料類型包含很長的資料;非常長資料的定義是提供者特定的。

false:資料類型不包含非常長的資料。
IsNullable bool true:資料類型可為 null。

false-資料類型不可為 null。

DBNull.Value—不知道資料類型是否可為 null。
IsSearchable bool true-資料類型可在 WHERE 子句中搭配任何運算子使用,但 LIKE 述詞除外。

false-資料類型不能用在 WHERE 子句中搭配任何運算子,但 LIKE 述詞除外。
IsSearchableWithLike bool true:資料類型可以與 LIKE 述詞搭配使用。

false-資料類型不能與 LIKE 述詞一起使用。
IsUnsigned bool true:資料類型不帶正負號。

false:資料類型已簽署。

DBNull.Value-不適用於資料類型。
MaximumScale short 如果型別指示器為數字型別,則此為小數點右邊所允許的最大位數。 否則,就是 DBNull.Value
MinimumScale short 如果型別指示器為數字型別,則此為小數點右邊所允許的最小位數。 否則,就是 DBNull.Value
IsConcurrencyType bool true–資料類型會在每次資料列變更時由資料庫更新,而且資料行的值與所有先前的值不同

false–每次變更資料列時,資料庫會更新此資料類型

DBNull.Value–資料庫不支援此資料類型。
IsLiteralsSupported bool true–資料類型可以表示為常值。

false–資料類型無法表示為常值。
LiteralPrefix 字串 套用至指定常值的前置詞。
LitteralSuffix 字串 套用至指定常值的後置詞。
NativeDataType String OLE DB 特定的資料行,用來公開資料類型的 OLE DB 類型。

MetaDataCollections

資料行名稱 資料類型 描述
CollectionName 字串 要傳遞給 GetSchema 方法以傳回集合的集合名稱。
NumberOfRestriction int 可以針對集合指定的限制數目。
NumberOfIdentifierParts int 複合識別項/資料庫物件名稱的部分數目。 例如,在 SQL Server 中,資料表數目應為 3,資料行數目應為 4。 在 Oracle 中,資料表數目應為 2,資料行數目應為 3。

限制

資料行名稱 資料類型 描述
CollectionName 字串 會套用這些限制的集合名稱。
RestrictionName 字串 集合中的限制名稱。
RestrictionDefault 字串 忽略。
RestrictionNumber int 此特定限制所屬之集合限制中的實際位置。

資料表

資料行名稱 資料類型 描述
table_catalog String 資料表的目錄。
table_schema String 包含資料表的結構描述。
table_name String 資料表名稱。
table_type String 資料表的類型。 可以是 VIEW 或 BASE TABLE。

範例

另請參閱

取得主機檔案系統中的結構描述資訊
主機檔案的 BizTalk 配接器設定