quinta-feira, 27 de outubro de 2011

SQLite (Base de Dados)


Continuando o artigo anterior sobre base de dados...

    Para quem quer trabalhar com base de dados, vai necessitar de uma string de conexão. Mais em informações em http://www.connectionstrings.com/ onde podemos encontrar vários servidores de base de dados, bem como e mais importante as strings de conexão com vários exemplos, a não perder.
    Alguns uns anos atrás usei muito o Access mas quando  começou a surgir o termo de software livre, resolvi experimentar novos sistemas de base dados gratuitos tais como PostreSQL, SQLCe, e hoje o SQLite, de que vou falar neste artigo.
    O SQLite é uma biblioteca desenvolvida em C , que permite a sua interacção com dados através de instruções sql. É um mini sistema de gestão de base dados (SGBD) com a possibilidade de ler e escrever directamente num ficheiro local. Actualmente (em 25/10/2011) encontra-se na versão 3.7.8. Implementa a maior parte dos recursos do SQL 92. Não precisa de ser configurando. Capaz de manipular alguns tetrabytes. Estas são apenas algumas das suas características.
SQLite é o servidor.
Vamos então passar a prática:
Algumas das ferramentas disponiveis http://sqlitestudio.one.pl/index.rvt , ou um plugin para o firefox https://addons.mozilla.org/pt-pt/firefox/addon/sqlite-manager/ , ambos são gratuitos.  Claro que existem outros, no entanto gostei mais destes dois.
Vamos então criar uma pequena base dados, para o nosso exemplo. Usei o addon para o firefox SQLite Manager




Depois aberta a aplicação e em Databse - New Database damos um nome a nossa base dados. De seguida vamos criar uma Tabela - Create Table (como mostra a figura em baixo)
Depois de criada a tabela contactos, campos(nome,telefone) coisa simples. Vamos então a visual basic .net
Baixar e instalar o provedor para a plantaforma .net do site http://www.sqlite.org/
Referenciar a dll (system.data.sqlite) ao nosso projecto


Coloquei num modulo, para que fique disponivel em todo o nosso projecto, aqui vamos criar a nossa connection.

Module Module1

Public myConnectionString As String = "Data Source=D:\dados\basedados.sqlite;Version=3;New=True;Compress=True;"

Public connection As New SQLite.SQLiteConnection(myConnectionString)

End Module


Adicionamos um form, ao nosso form adicionamos um datagridview e um button.
Ao seleccionamos aqui no imported namespaces a dll system.data.sqlite ou no form adicionamos Imports System.Data.SQLite
e o restante código



'Imports System.Data.SQLite

Public Class Form1

'Declaramos o dataset e o dataadapter

Dim ds As DataSet

Dim da As SQLiteDataAdapter

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'A instrução sql, retorna todos os campos da tabela contactos

Dim sql As String = "select * from contactos"

'Declaramos a nossa conexão a base de dados

Dim connection As New SQLiteConnection(myConnectionString)

' Cria um novo SqliteDataAdapter

da = New SQLiteDataAdapter(sql, connection)

' Cria um novo DataSet

ds = New DataSet("Tabela")

'Define o esquema da tabela

da.FillSchema(ds, SchemaType.Source, "Tabela")

' Preenche o dataset

da.Fill(ds, "Tabela")

'Povoa o nosso datagridview

DataGridView1.DataSource = ds.Tables("Tabela")

' Limpa a ligação à base de dados

connection = Nothing

End Sub

Private Sub guardar()

' Comando para actualizar o dataset

Dim cb As New SQLiteCommandBuilder(da)

' Actualiza a tabela

da.Update(ds, "Tabela")

'Se na nossa tabela contactos não existir PRIMARY KEY

'não vai actualizar a nossa base de dados

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

guardar()

End Sub

End Class

Vamos executar...no caso que surja o erro:
"A assemblagem de modo misto foi criada com base na versão 'v2.0.50727' do tempo de execução e não é possível carregá-la no tempo de execução 4.0 sem informações de configuração adicionais." (System.IO.FileLoadException) Exception Message = "A assemblagem de modo misto foi criada com base na versão 'v2.0.50727' do tempo de execução e não é possível carregá-la no tempo de execução 4.0 sem informações de configuração adicionais.", Exception Type = "System.IO.FileLoadException"                                        

O SQLite foi criado na versão 2 do .net, então no menu projecto vamos ter que adicionar um novo item e seleccione Arquivo de configuração do aplicativo (Application Configuration File) . Torná-lo parecido com este:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

</startup>

</configuration>

Finalmente eis o a funcionar



Até ao próximo artigo...

Sem comentários:

Enviar um comentário