Neste artigo vou apresentar uma solução simples para um problema que enfrentei numa base de dados SQL Server de um cliente.

Se você ainda não teve prepare-se, porque uma hora vai ter a necessidade de realizar atualizações em uma base de dados de um cliente e como todos sabem as atualizações são constantes e muitas vezes também são pequenas e por isso resolvi procurar uma forma de realizar tais atualizações de forma rápida, eficiente, segura e o principal; o próprio usuário poderá realizar a atualização.

Vamos começar nossos trabalhos criando uma base de dados no SQL Server, sugiro o nome dbDownload. Não vou aqui entrar em detalhes sobre a criação de banco de dados e tabelas visto que com certeza isso não é nada incomum a todos e foge ao escopo do artigo.

No banco de dados criado adicione uma tabela com 3 campos como mostra a Figura 1.

Banco de dados dbDownload

Figura 1 – Banco de dados dbDownload

Analisando os campos da tabela podemos notar que os campos Nome e Endereço possuem seus tamanhos muito pequenos, claro que isso não é um erro que cometeríamos ao criar nossas tabelas, mas a título de exemplo vamos mantê-los assim para que possamos ver as alterações sendo executadas.

Agora que já temos nossa enorme base de dados, esta que nos deu muito trabalho não é verdade? Vamos agora para o projeto ASP.NET e código na veia.

Crie um novo Website no Visual Studio 2005/2008, de a ele o nome de sua preferência.

No source do arquivo Default.aspx adicione as tags Html como ilustrado na Figura 2.

Figura 1.0.1 – Codificação Html

Figura 2 – Codificação HTML

Primeira parte concluída, o código HTML da nossa página de atualizações está prontinho, vamos agora para a codificação do arquivo .cs o qual ficará encarregado de realizar o download de um arquivo, ler o conteúdo deste arquivo e executar os scripts SQL nele contido.

Devo salientar que para esta tarefa eu usei um arquivo texto, mas pode ser também um XML ou outra extensão de sua preferência, usei arquivo texto por ser mais simples de explicar e acessar as informações do mesmo. Agora chega de papo, vamos ao que interessa.

Antes iniciarmos a codificação vou apresentar o arquivo texto com os scripts de atualização do banco, acompanhe na Figura 3.

Scripts SQL

Figura 3 – Scripts SQL

Percebam que na primeira linha é realizado um backup do banco local para evitar qualquer problema, em seguida começa o processo de atualizações dos campos e dados.

Vamos então, finalmente para a codificação dos métodos.

Efetue um duplo clique sobre o botão btnDownload, dessa forma será exibida a janela de códigos e automaticamente será criado o método btnDownload_Click, dentro desse método vamos adicionar o código necessário para o download e execução dos scrips SQL.

Antes de iniciarmos com a codificação vamos importar alguns Namespaces, veja na Figura 4 os Namespaces necessários.

Figura 1.0.3 – Namespaces do projeto

Figura 4 – Namespaces do projeto

Dando sequência vamos então declarar dois objetos para manipular a conexão e o command.

Acima do método Page_Load declare os objetos de forma que ambos sejam públicos, como mostra a Figura 5.

Figura 1.0.4 - Declaração dos objetos públicos

Figura 5 - Declaração dos objetos públicos

Agora vamos então para o código do método btnDownload_Click. Acompanhe a Figura 6 onde temos todo o código do método e com seus respectivos comentários.

Figura 1.0.5 – Codificação do método btnDownload_Click.

Figura 6 – Codificação do método btnDownload_Click.

Como podemos ver, o código está todo comentado de forma clara e objetiva, sendo assim o mesmo dispensa maiores detalhes. Vamos então para a criação do método AtualizaDB. Acompanhe a Figura 7 para maiores detalhes.

Figura 1.0.6 – Método AtualizaDB.

Figura 7 – Método AtualizaDB.

O método atualizaDB se encarrega de abrir o arquivo texto do download, separa os scripts SQL em um array e os executa um a um na conexão corrente. Como o código está todo comentado também acredito não ter segredos para o mesmo.

Por fim vamos ao último método que é responsável por instanciar uma conexão com o banco local. Na Figura 8 temos o código o qual podemos perceber que é muito simples.

Figura 1.0.7 – Conexão com banco de dados local

Figura 8 – Conexão com banco de dados local

Para finalizarmos mais este artigo basta apenas realizarmos o teste de São Tomé, só acredito vendo.

Note que no código da Figura 6 temos o endereço http://www.midiatraining.com/updateCommands.txt, esse endereço se manterá, caso você queira fazer algum teste tem o arquivo online. Vamos acompanhar na Figura 9 a aplicação sendo executada, e na Figura 10 o resultado final do banco de dados.

Figura 1.0.8 – Aplicação em execução

Figura 9 – Aplicação em execução

Resultado final no banco de dados

Figura 10 – Resultado final no banco de dados

Conclusão

Ao finalizar este artigo o amigo leitor pode ter uma pequena base de um assunto interessante que serve não só para atualizações de banco de dados SQL Server, pois com alguns ajustes você pode desenvolver um aplicativo bem interessante para atualização de outros bancos de dados sem maiores problemas, além é claro de outros tipos de arquivos como XML e até mesmo paginas inteiras de websites.