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 :
Schema - um dos valores para classe OleDbSchemaGuid que define o esquema da tabela que será retornado.
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.) 
 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 | 
Imports
System.Data.OleDb4- 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 :
| PublicFunction 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