ADO.NET - Obtendo o esquema de uma fonte de dados

 

O esquema de uma fonte de dados descreve a estrutura da organização das tabelas , procedimentos armazenados e visões . Através da ADO.NET podemos facilmente obter estas informações . O objeto OLEDBConnection fornece a função GetOLEDBSchemaTable que pode ser usada para retornar informações sobre o esquema do banco de dados.

 

A sintaxe da função é a seguinte :

 

Public Function GetOleDbSchemaTable( ByVal schema As Guid, ByVal restrictions() As Object ) As DataTable

 

A função aceita dois parâmetros :

  1. Schema  - um dos valores para classe OleDbSchemaGuid que define o esquema da tabela que será retornado.

  2. Restrictions - é um array de objetos usado para filtrar o resultado do esquema retornado

Assertions

Os membros da classe OleDbSchemaGuid retornam o tipo de esquema definido pelo método  GetOleDbSchemaTable. Abaixo os principais membros:

- Vamos mostrar um exemplo de como retornar um esquema do banco de dados Biblio.mdb que esta na pasta c:\teste

1 - Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)

  1. Project Types : Visual Basic Projects
  2. Templates : Windows Application
  3. Name : Esquema
  4. Location : c:\vbnet\Esquema

2- A seguir insira um componente DataGrid no formulário form1.vb , um botão de comando e uma caixa de texto conforme abaixo :

 

 

Catalogs
Character_Sets
Check_Constraints
Check_Constraints_By_Table
Collations
Columns
Column_Domain_Usage
Column_Privileges
Constraint_Column_Usage
Constraint_Table_Usage
DbInfoLiterals
Foreign_Keys
Indexes
Key_Column_Usage
Primary_Keys
Procedures
Procedure_Columns
Procedure_Parameters
Provider_Types
Referential_Constraints
Schemata
Sql_Languages
Statistics
Tables
Tables_Info
Table_Constraints
Table_Privileges
Table_Statistics
Translations
Trustee
Usage_Privileges
Views
View_Column_Usage
View_Table_Usage

3- Insira a seguinte linha de código que importa o namespace System.Data.OleDb

Imports System.Data.OleDb

4- A seguir defina as variáveis usadas no projeto:

Dim strcon As String

Dim tipo As Integer = 0

Dim Tabela As DataTable = New DataTable("Tabela")

 

5- A seguir insira o seguinte código no evento Click do botão de comando :

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 

strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & txtarquivo.Text

 

Dim conexao As New OleDbConnection(strcon)

 

conexao.Open()

 

Tabela = EsquemaTabelas(conexao)

 

DataGrid1.DataSource = Tabela

 

conexao.Close()

End Sub

 

6- Agora o código da função - EsquemaTabelas :

 

Public Function EsquemaTabelas(ByVal conn As OleDbConnection) As DataTable

  Tabela = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})

    Return Tabela

End Function

 

Agora execute o projeto e o resultado será o esquema do banco de dados biblio.mdb:

 

 

Até a próxima...


José Carlos Macoratti