sábado, 21 de maio de 2011

Criando um banco Access em tempo de execução

Grande parte das aplicações em geral, no ato da instalação, a base de dados do sistema é extraída com os demais arquivos dependentes (DLL, INI, OCX, XML etc). Por vezes, tive que criar uma rotina que criasse a base de dados em tempo de execução, na primeira utilização do programa. Pensando nisso, que tal criarmos uma base de dados Microsoft Access (com uma tabela e com alguns registros inseridos) em tempo de execução? 

Para demonstrar, iremos utilizar o Visual Studio 2010 Ultimate e linguagem VB.NET.

Abra o Visual Studio e crie um novo projeto (File > New > Project) do tipo Windows Forms Application em linguagem VB.NET.


Adicione 3 controles do tipo Button no formulário Form1, com as legendas alteradas de acordo com a tabela abaixo.

Controle
Propriedade Text
Button1
Criar banco MDB
Button2
Criar tabela ‘Contato’
Button3
Inserir registros

A interface do Form1 deve ser semelhante ao da imagem .


Vamos adicionar a referência Microsoft ADO Ext. for DLL and Security ao projeto, que é o recurso que vai agregar a funcionalidade de criação da base MDB. Clique no menu Project > Add Reference e clique no botão OK.


Primeiramente, vamos escrever a rotina que irá criar a base de dados MDB em um diretório do computador. Dê um duplo-clique no botão “Criar banco MDB” e escreva a listagem abaixo no evento Click.

Public Class Form1

    Private Const CONNECTION_STRING = "Provider=Microsoft.Jet.Oledb.4.0;" & _
                                      "Data Source=C:\POnLine.mdb"

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim catalogo As New ADOX.Catalog
        catalogo.Create(CONNECTION_STRING)
        MessageBox.Show("Banco ""POnLine.mdb"" criado com sucesso!")
    End Sub
End Class

Perceba que criamos uma constante fora do contexto do evento Click, para que fique visível para todo o formulário. Seguindo, dê um duplo-clique no botão “Criar tabela ‘Contato’” e escreva a rotina abaixo.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim conn As New OleDb.OleDbConnection(CONNECTION_STRING)
        Dim cmd As New OleDb.OleDbCommand("CREATE TABLE Contato (ID int not null, Nome varchar(50))", conn)
        conn.Open()
        cmd.ExecuteNonQuery()
        MessageBox.Show("Tabela 'Contato' criada com sucesso!")
    End Sub

A rotina acima cria a tabela Contato no banco de dados criado. Por fim, proceda da mesma forma para o terceiro botão, a fim de inserirmos alguns registros de exemplo.

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    Dim conn As New OleDb.OleDbConnection(CONNECTION_STRING)
    Dim cmd As New OleDb.OleDbCommand()

    cmd.Connection = conn
    cmd.CommandType = CommandType.Text
    conn.Open()

    cmd.CommandText = "INSERT INTO Contato VALUES (1, 'Contato 1')"
    cmd.ExecuteNonQuery()

    cmd.CommandText = "INSERT INTO Contato VALUES (2, 'Contato 2')"
    cmd.ExecuteNonQuery()

    cmd.CommandText = "INSERT INTO Contato VALUES (3, 'Contato 3')"
    cmd.ExecuteNonQuery()
    MessageBox.Show("Registros inseridos com sucesso!")
End Sub

Nosso exemplo está pronto, execute a aplicação e teste seguindo a sequência dos botões, ou seja, crie o banco, em seguida a tabela e por fim insira os registros. Após a execução do programa, o resultado que obtive foi este:



Fico por aqui, e até a próxima!

Nenhum comentário:

Postar um comentário

Deixe aqui seu comentário