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 :
Public Function EsquemaTabelas(ByVal conn As OleDbConnection) As DataTableTabela = 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