VB.NET - Obtendo o esquema de tabelas no SQL Server
Se você precisa obter a informação sobre o esquema de um banco de dados SQL Server , vai perceber neste artigo que a tarefa é trivial.
Neste artigo vou mostrar como obter informações sobre o esquema de tabelas do banco de dados Northwind do SQL Server. Você precisa ter o SQL Server instalado com este banco de dados presente para acompanhar este artigo.
Abaixo temos a figura que mostra o banco de dados Northwind do SQL Server usado neste artigo.
Inicie um novo projeto do tipo Windows Application usando a linguagem VB.NET e no formulário padrão inclua um componente DataGrid , um componente Button e dois componentes radioButton conforme o layout abaixo:
Defina os imports usado pelo sistema conforme abaixo :
Imports
System
Imports System.Configuration
Imports
System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Em seguida vamos criar um arquivo de configuração para aplicação onde iremos armazenar as strings de conexão para o banco de dados SQL Server e para o banco de dados Access.
Abaixo o código do nosso arquivo de configuração:
<?xml
version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="OleDb_ConnectString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\teste\Northwind.mdb" /> <add key="Sql_ConnectString" value="server=(local);trusted_connection=true;database=Northwind;Integrated Security=SSPI" /> </appSettings> </configuration> |
Nota: Para saber mais sobre como criar o seu arquivo de configuração leia o artigo : NET - Tratando arquivos de configuração
No evento Click do botão - Obter esquema das tabelas - inclua o seguinte código:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnObterTabelas.Click Dim schemaTable As DataTable If rdbSQLServer.Checked Then ' retorna o esquema das tabelas
para o SQL Server dgSchema.CaptionText = "SQL Server
.NET Provider" dgSchema.CaptionText = "OLE DB
.NET Provider" ' vincula o mode de visualização
padrão do esquema ao datagrid |
Execute o projeto ;selecione a opção SQL Server .NET e clique no botão de comando. O resultado obtido será o exibido na figura abaixo:
Como bônus você pode selecionar a opção OleDB .NET e obter o esquema do banco de dados Northwind.mdb conforme figura abaixo:
Vamos agora as considerações:
A solução usada para o SQL Server utiliza a informação de esquemas Views disponíveis no SQL Server. Estas Views fornecem o acesso independente a tabela do sistema para obter metadados.
As Views estão definidas em cada banco de dados em um esquema chamado INFORMATION_SCHEMA. A fim de acessá-la basta definir o nome completo da VIEW. Neste artigo a View para as tabelas é acessada através do seguinte sintaxe:
INFORMATION_SCHEMA.TABLES
A seguir a relação das principais informações das Views de esquema disponíveis no SQL Server:
Nome | Descrição |
CHECK_CONSTRAINT | Verifica restrições |
COLUMN_PREVILEGES | Colunas com privilégios garantidos para ou pelo usuário atual |
COLUMNS | Todas as colunas |
CONSTRAINT_TABLE_USAGE | Tabelas que possuem uma restrição definida |
DOMAINS | Todos os tipos de dados definidos pelo usuário |
KEY_COLUMN_USAGE | Colunas restringidas como uma chave |
PARAMETERS | Todos os parâmetros para funções definidas pelo usuário e stored procedures |
ROUTINES | Todas as funções definidas pelo usuário e stored procedures |
SCHEMATA | Todos os banco de dados |
TABLE_CONSTRAINTS | Todas as restrições das tabelas |
TABLE_PRIVILEGES | Tabelas com privilégio garantido para ou pelo usuário atual |
TABLES | Todas as tabelas |
VIEWS_TABLE_USAGE | Tabelas usadas em uma View |
VIEWS | Todas as Views |
A informação sobre os dados será restringida aquelas que o usuário tiver permissão.
Para o SQL Server usamos a seguinte instrução SQL :
"SELECT * " & "FROM INFORMATION_SCHEMA.TABLES " & "WHERE TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_TYPE"
Esta solução mostra como retornar informações sobre as tabelas usando INFORMATION_SCHEMA.TABLES. Abaixo temos os dados que serão obtidos:
Nome da Coluna | Tipo de Dado | Descrição |
TABLE_CATALOG | nvarchar(128) | nome do banco de dados |
TABLE_SCHEMA | nvarchar(128) | proprietário da tabela |
TABLE_NAME | sysname | nome da tabela |
TABLE_TYPE | varchar(10) | o tipo da tabela (BASE_TABLE ou VIEW) |
A solução que usamos para obter a informação do banco de dados Access Northwind.mdb utiiza o método GetOleDbSchemaTable() do objeto OleDbConnection. Este método retorna a informação do esquema para o banco de dados indicado pela enumeração na classe OleDbSchemaGuid.
Simples não é mesmo...
Aguarde mais artigos com VB.NET.
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: