Search notes:

System.Data.OleDb.OleDbConnection - GetSchema()

Collections

MetaDataCollections

Number of Restrictions: 0
Number of Identifier parts: 0
CollectionName
NumberOfRestrictions
NumberOfIdentifierParts

DataSourceInformation

Number of Restrictions: 0
Number of Identifier parts: 0
CompositeIdentifierSeparatorPattern
DataSourceProductName
DataSourceProductVersion
DataSourceProductVersionNormalized
GroupByBehavior
IdentifierPattern
IdentifierCase
OrderByColumnsInSelect
ParameterMarkerFormat
ParameterMarkerPattern
ParameterNameMaxLength
ParameterNamePattern
QuotedIdentifierPattern
QuotedIdentifierCase
StatementSeparatorPattern
StringLiteralPattern
SupportedJoinOperators

DataTypes

Number of Restrictions: 0
Number of Identifier parts: 0
TypeName
ProviderDbType
ColumnSize
CreateFormat
CreateParameters
DataType
IsAutoIncrementable
IsBestMatch
IsCaseSensitive
IsFixedLength
IsFixedPrecisionScale
IsLong
IsNullable
IsSearchable
IsSearchableWithLike
IsUnsigned
MaximumScale
MinimumScale
IsConcurrencyType
IsLiteralSupported
LiteralPrefix
LiteralSuffix
NativeDataType

Restrictions

Number of Restrictions: 0
Number of Identifier parts: 0
CollectionName
RestrictionName
RestrictionDefault
RestrictionNumber

ReservedWords

Number of Restrictions: 0
Number of Identifier parts: 0
ReservedWord

Columns

Number of Restrictions: 4
Number of Identifier parts: 4
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
COLUMN_GUID
COLUMN_PROPID
ORDINAL_POSITION
COLUMN_HASDEFAULT
COLUMN_DEFAULT
COLUMN_FLAGS
IS_NULLABLE
DATA_TYPE
TYPE_GUID
CHARACTER_MAXIMUM_LENGTH
CHARACTER_OCTET_LENGTH
NUMERIC_PRECISION
NUMERIC_SCALE
DATETIME_PRECISION
CHARACTER_SET_CATALOG
CHARACTER_SET_SCHEMA
CHARACTER_SET_NAME
COLLATION_CATALOG
COLLATION_SCHEMA
COLLATION_NAME
DOMAIN_CATALOG
DOMAIN_SCHEMA
DOMAIN_NAME
DESCRIPTION

Indexes

Number of Restrictions: 5
Number of Identifier parts: 4
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
INDEX_CATALOG
INDEX_SCHEMA
INDEX_NAME
PRIMARY_KEY
UNIQUE
CLUSTERED
TYPE
FILL_FACTOR
INITIAL_SIZE
NULLS
SORT_BOOKMARKS
AUTO_UPDATE
NULL_COLLATION
ORDINAL_POSITION
COLUMN_NAME
COLUMN_GUID
COLUMN_PROPID
COLLATION
CARDINALITY
PAGES
FILTER_CONDITION
INTEGRATED

Procedures

Number of Restrictions: 4
Number of Identifier parts: 3
PROCEDURE_CATALOG
PROCEDURE_SCHEMA
PROCEDURE_NAME
PROCEDURE_TYPE
PROCEDURE_DEFINITION
DESCRIPTION
DATE_CREATED
DATE_MODIFIED

ProcedureParameters

Number of Restrictions: 4
Number of Identifier parts: 4
PROCEDURE_CATALOG
PROCEDURE_SCHEMA
PROCEDURE_NAME
PARAMETER_NAME
ORDINAL_POSITION
PARAMETER_TYPE
PARAMETER_HASDEFAULT
PARAMETER_DEFAULT
IS_NULLABLE
DATA_TYPE
CHARACTER_MAXIMUM_LENGTH
CHARACTER_OCTET_LENGTH
NUMERIC_PRECISION
NUMERIC_SCALE
DESCRIPTION
TYPE_NAME
LOCAL_TYPE_NAME

Tables

Number of Restrictions: 4
Number of Identifier parts: 3
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
TABLE_TYPE
TABLE_GUID
DESCRIPTION
TABLE_PROPID
DATE_CREATED
DATE_MODIFIED

Views

Number of Restrictions: 3
Number of Identifier parts: 3
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
VIEW_DEFINITION
CHECK_OPTION
IS_UPDATABLE
DESCRIPTION
DATE_CREATED
DATE_MODIFIED

Script to produce data

The data shown above was produced with the following script:
param (
   [System.Data.OleDb.OleDbConnection] $conn
)

set-strictMode -version latest

function write-dataTableColumns {
   param (
      [System.Data.DataTable] $dt
   )

#  write-host "$($dt.TableName)"

   [System.Data.DataColumnCollection] $cols = $dt.Columns
   foreach ($col in $cols) {
       write-host "   $($col.ColumnName)"
   }
}


[System.Data.DataTable] $schema = $conn.GetSchema()

write-dataTableColumns $schema

foreach ($collection in $schema.Rows) {
    $collName = $collection['CollectionName']
    write-host ''
    write-host "Collection name:             $collName"
    write-host " Number of Restrictions:     $($collection['NumberOfRestrictions'])"
    write-host " Number of Identifier parts: $($collection['NumberOfIdentifierParts'])"

    try {
     #
     # Some calls to GetSchema() cause
     #     Exception calling "GetSchema" with "1" argument(s):
     #    "Operation is not supported for this type of object."
     #
        $collSchema = $conn.GetSchema($collName)
    }
    catch {
        "Could not get schema for $collname"
         $collSchema = $null
    }
    if ($collSchema -ne $null) {
        write-dataTableColumns  $collSchema
    }
}
Github repository .NET-API, path: /System/Data/OleDb/OleDbConnection/GetSchema/show-collection-column-names.ps1

See also

GetOleDbSchemaTable()
System.Data.Common.DbDataReader, method GetSchemaTable()
System.Data.OleDb.OleDbConnection

Index