Partilhar via


OleDbConnection.GetOleDbSchemaTable(Guid, Object[]) Método

Definição

Retorna informações de esquema de uma fonte de dados, conforme indicado por um GUID e depois de aplicar as restrições especificadas.

public:
 System::Data::DataTable ^ GetOleDbSchemaTable(Guid schema, cli::array <System::Object ^> ^ restrictions);
public System.Data.DataTable? GetOleDbSchemaTable (Guid schema, object?[]? restrictions);
public System.Data.DataTable GetOleDbSchemaTable (Guid schema, object[] restrictions);
member this.GetOleDbSchemaTable : Guid * obj[] -> System.Data.DataTable
Public Function GetOleDbSchemaTable (schema As Guid, restrictions As Object()) As DataTable

Parâmetros

schema
Guid

Um dos valores de OleDbSchemaGuid que especifica a tabela de esquema a ser retornada.

restrictions
Object[]

Uma matriz Object de valores de restrição. Eles são aplicados na ordem das colunas de restrição. Isto é, o primeiro valor da restrição se aplica à primeira coluna de restrição, o segundo valor da restrição se aplica à segunda coluna de restrição e assim por diante.

Retornos

Um DataTable que contém as informações de esquema solicitadas.

Exceções

O conjunto de restrições especificado é inválido.

O conjunto de linhas do esquema especificado não tem suporte do provedor OLE DB.

- ou -

O parâmetro schema contém um valor de DbInfoLiterals e o parâmetro restrictions contém uma ou mais restrições.

Exemplos

O exemplo a seguir retorna uma lista de tabelas em um banco de dados.

static DataTable GetSchemaTable(string connectionString)
{
    using (OleDbConnection connection = new
               OleDbConnection(connectionString))
    {
        connection.Open();
        DataTable schemaTable = connection.GetOleDbSchemaTable(
            OleDbSchemaGuid.Tables,
            new object[] { null, null, null, "TABLE" });
        return schemaTable;
    }
}
Public Function GetSchemaTable(ByVal connectionString As String) _
    As DataTable

    Using connection As New OleDbConnection(connectionString)
        connection.Open()

        Dim schemaTable As DataTable = _
            connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
            New Object() {Nothing, Nothing, Nothing, "TABLE"})
        Return schemaTable
    End Using
End Function

Comentários

A tabela de esquema é retornada como um DataTable que tem o mesmo formato que o conjunto de linhas de esquema OLE DB especificado pelo schema parâmetro . Use o restrictions parâmetro para filtrar as linhas a serem retornadas no DataTable (por exemplo, especificando restrições para nome da tabela, tipo, proprietário ou esquema). Quando você passa valores na matriz, inclua cadeias de caracteres vazias ou nulos para elementos de matriz que não contêm valores. Se você passar uma matriz vazia para restrictions, todas as linhas (uma para cada tabela) serão retornadas na ordem padrão. Os valores na matriz correspondem à ordem das colunas na tabela de origem e DataTable. Cada elemento na matriz de restrições é comparado com o conteúdo da coluna correspondente no conjunto de linhas de esquema. Por exemplo, o primeiro elemento na matriz de restrições é comparado à primeira coluna no conjunto de linhas. Se um elemento de restrição não for nulo, somente as linhas do conjunto de linhas de esquema que correspondem exatamente ao valor da restrição serão adicionadas ao resultante DataTable.

O OleDbConnection método chama o método OLE DB IDBSchemaRowset::GetRowset subjacente usando regras de conversão padrão do Common Language Runtime. Para obter mais informações, consulte Tipos de dados COM.

Você pode recuperar informações sobre literais usando DbInfoLiterals. Isso fornece informações equivalentes a chamar a interface OLE DB IDBInfo::GetLiteralInfo ou o método Connection.OpenSchema do ADO com a adSchemaDBInfoLiterals constante.

Aplica-se a

Confira também