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...

quarta-feira, 26 de outubro de 2011

Base de Dados

    Penso que todos que visitarem este blog já sabem o que é uma base de dados. No entanto deixo-vos um pequeno comentário. Uma Base de dados é um conjunto de registos que contém uma determinada informação, capaz de armazenar dados de forma organizada e estruturada.
    Uma base de dados geralmente é gerida um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD).  As base de dados armazenam informação sobre todo o tipo de coisas, produtos, pessoas,…
    Os sistemas de base dados são ferramentas que nos ajudam na recolha e na organização da informação, que depois pode ser tratada para obtermos os mais diversos resultados.
    Alguns exemplos de bancos dados conhecidos no mundo da informática Access, SQL Server, dBase, Oracle,SyBase, Firebird, Informix, MySQL, PostgreSQL, SQLite,…



Continua no próximo artigo sobre SQLite...