OleDbDataReader.GetSchemaTable 메서드

정의

DataTable의 열 메타데이터를 정의하는 OleDbDataReader을 반환합니다.

public:
 override System::Data::DataTable ^ GetSchemaTable();
public:
 virtual System::Data::DataTable ^ GetSchemaTable();
public override System.Data.DataTable GetSchemaTable ();
public override System.Data.DataTable? GetSchemaTable ();
public System.Data.DataTable GetSchemaTable ();
override this.GetSchemaTable : unit -> System.Data.DataTable
abstract member GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Overrides Function GetSchemaTable () As DataTable
Public Function GetSchemaTable () As DataTable

반환

열 메타데이터를 정의하는 DataTable입니다.

구현

예외

설명

메서드는 GetSchemaTable OLE DB IColumnsRowset::GetColumnsRowset 메서드에 매핑되고 다음 순서로 각 열에 대한 메타데이터를 반환합니다.

DataReader 열 OLE DB 열 ID Description
ColumnName DBCOLUMN_NAME 열의 이름 이 고유 하지 않을 수도 있습니다. 확인할 수 없는 경우 null 값이 반환됩니다. 이 이름에는 항상 현재 보기 또는 명령 텍스트에 있는 열의 최근 이름 바꾸기가 반영됩니다.
ColumnOrdinal DBCOLUMN_NUMBER 열의 0부터 시작하는 서수입니다. 이 열에 null 값을 포함할 수 없습니다.
ColumnSize DBCOLUMN_COLUMNSIZE 열 값의 최대 길이로서 고정 길이 데이터 형식을 사용하는 열의 경우 데이터 형식의 크기입니다.
NumericPrecision DBCOLUMN_PRECISION DbType이 숫자 데이터 형식인 경우 열의 최대 전체 자릿수입니다. 데이터 형식이 DBTYPE_DECIMAL 또는 DBTYPE_NUMERIC 열의 전체 자릿수는 열의 정의에 따라 달라집니다. DbType이 숫자 데이터 형식이 아닌 경우 null 값입니다.
NumericScale DBCOLUMN_SCALE DbType이 DBTYPE_DECIMAL 또는 DBTYPE_NUMERIC 경우 소수점 오른쪽의 숫자 수입니다. 그렇지 않으면 null 값입니다.
DataType None 열의 .NET Framework 형식에 매핑됩니다.
ProviderType DBCOLUMN_TYPE 열 데이터 형식 표시기입니다. 열의 데이터 형식이 행마다 다른 경우 DBTYPE_VARIANT 합니다. 이 열에 null 값을 포함할 수 없습니다.
IsLong DBCOLUMNFLAGS_ISLONG 공급자는 열에 매우 긴 데이터가 포함된 BLOB(Binary Long Object)이 포함되어 있으면 DBCOLUMNFLAGS_ISLONG 설정합니다. 매우 긴 데이터에 대한 정의는 공급자에 따라 다릅니다. 이 플래그의 설정은 데이터 형식에 대한 PROVIDER_TYPES 행 집합의 IS_LONG 열 값에 해당합니다.
AllowDBNull DBCOLUMNFLAGS_ISNULLABLE 공급자는 소비자가 열을 null 값으로 설정할 수 있는지 또는 공급자가 소비자가 열을 null 값으로 설정할 수 있는지 여부를 결정할 수 없는 경우 DBCOLUMNFLAGS_ISNULLABLE 설정합니다. 열을 null 값으로 설정할 수 없는 경우에도 열에 null 값을 포함할 수 있습니다.
IsReadOnly DBCOLUMNFLAGS_WRITE true 이면 열을 수정할 수 없습니다. 그렇지 않으면 false합니다. 공급자가 DBCOLUMNFLAGS_WRITE 또는 DBCOLUMNFLAGS_WRITEUNKNOWN 플래그를 설정한 경우 열을 쓸 수 있는 것으로 간주됩니다.
IsRowVersion DBCOLUMNFLAGS_ISROWID 공급자는 열에 쓸 수 없는 영구 행 식별자가 포함되어 있고 행의 ID를 제외하고는 의미 있는 값이 없는 경우 DBCOLUMNFLAGS_ISROWID 설정합니다.
IsUnique DBCOLUMN_ISUNIQUE VARIANT_TRUE: BaseTableName-에 반환된 테이블이 이 열에서 동일한 값을 가질 수 있는 기본 테이블의 두 행이 없습니다. 열이 키 자체를 나타내는 경우 또는 이 열에만 적용되는 UNIQUE 형식의 제약 조건이 있는 경우 IsUnique가 VARIANT_TRUE 보장됩니다.

VARIANT_FALSE: 열에는 기본 테이블에 중복 값이 포함될 수 있습니다. 이 열의 기본값은 VARIANT_FALSE.
IsKey DBCOLUMN_KEYCOLUMN VARIANT_TRUE: 열은 행 집합에서 행을 고유하게 식별하는 열 집합 중 하나입니다. IsKey가 VARIANT_TRUE 설정된 열 집합은 행 집합의 행을 고유하게 식별해야 합니다. 이 열 집합이 열의 최소 집합일 필요는 없습니다. 이 열 집합은 기본 테이블 기본 키, 고유 제약 조건 또는 고유 인덱스에서 생성될 수 있습니다.

VARIANT_FALSE: 열은 행을 고유하게 식별할 필요가 없습니다.
IsAutoIncrement DBCOLUMN_ISAUTOINCREMENT VARIANT_TRUE: 열은 고정 증분 단위로 새 행에 값을 할당합니다.

VARIANT_FALSE: 열은 고정 증분에서 새 행에 값을 할당하지 않습니다. 이 열의 기본값은 VARIANT_FALSE.
BaseSchemaName DBCOLUMN_BASESCHEMANAME 열이 포함된 데이터 저장소에 있는 스키마의 이름입니다. 기본 스키마 이름을 확인할 수 없는 경우 null 값입니다. 이 열의 기본값은 null 값입니다.
BaseCatalogName DBCOLUMN_BASECATALOGNAME 열이 포함된 데이터 저장소에 있는 카탈로그의 이름입니다. 기본 카탈로그 이름을 확인할 수 없는 경우 null 값입니다. 이 열의 기본값은 null 값입니다.
BaseTableName DBCOLUMN_BASETABLENAME 열이 포함된 데이터 저장소에 있는 테이블 또는 뷰의 이름입니다. 기본 테이블 이름을 확인할 수 없는 경우 null 값입니다. 이 열의 기본값은 null 값입니다.
BaseColumnName DBCOLUMN_BASECOLUMNNAME 데이터 저장소의 열 이름입니다. 별칭이 사용된 경우 ColumnName 열에 반환된 열 이름과 다를 수 있습니다. 기본 열 이름을 확인할 수 없거나 행 집합 열이 파생되었지만 데이터 저장소의 열과 동일하지 않은 경우 null 값입니다. 이 열의 기본값은 null 값입니다.

참고

메타데이터 열이 올바른 정보를 반환하도록 하려면 매개 변수를 로 설정KeyInfo하여 behavior 를 호출 ExecuteReader 해야 합니다. 그렇지 않으면 스키마 테이블의 일부 열이 기본값, null 또는 잘못된 데이터를 반환할 수 있습니다.

적용 대상

추가 정보