 VB.NET 
  - Obtendo o esquema de tabelas no SQL Server
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 Facebook
  
 Compartilhe no Twitter
 
Compartilhe no Twitter
 
Referências: