Hoje vamos iniciar a programação em si da comunicação entre sqlite3 e wxWidgets usando a biblioteca wxSqlite3.
Primeiro vamos inserir a biblioteca do wxSqlite3 que compilamos anteriormente, ao projeto:
Abra o projeto agenda criado anteriormente no Code::Blocks.
Abra o menu Project->Build options...
Vá na aba Linker settings.
Em link libraries clique no botão Add
Selecione a biblioteca do wxSqlite3 que deve estar em /usr/local/lib
Clique em Ok e salve o projeto.
Primeiro vamos criar duas funções bem básicas, uma será responsável por criar ou abrir um banco de dados em Sqlite3 e a outra será apenas para fechar a comunicação com o banco de dados.
Nos dois casos, a classe responsável por isso é a wxSQLite3Database, ela se encontra no arquivo de cabeçalho wxsqlite3.h, usaremos apenas duas de suas funções, Open() e Close().
Abra o projeto “agenda” criado no tutorial anterior e abra os arquivos sqlf.h e sqlf.cpp para edição.
No arquivo sqlf.h digite o seguinte:
#ifndef SQLF_H_INCLUDED #define SQLF_H_INCLUDED #include <wx/wx.h> #include <wx/wxsqlite3.h> //Nesta primeira função, iremos abrir um banco de dados indicado pelo //parâmetro caminho e retornar um ponteiro para wxSQLite3Database... //Se o banco de dados não existir, será criado um... wxSQLite3Database *OpenDB(wxString caminho); //Aqui iremos apenas fechar o mesmo... //Isto é necessário, pois liberaremos o arquivo para novos acessos... void CloseDB(wxSQLite3Database* db); #endif // SQLF_H_INCLUDED
No arquivo sqlf.cpp digite o seguinte:
sqlf.cpp
#include "sqlf.h" //Vamos implementar nossa função OpenDB... wxSQLite3Database *OpenDB(wxString caminho) { //Aqui eu crio um ponteiro para um wxSQLite3Database chamado db... //É ele que nós retornaremos na função... wxSQLite3Database *db = new wxSQLite3Database(); //Aqui uso a função Open, passando como parâmetro o caminho para o banco de dados... //O interessante aqui é vermos que se existir um banco de dados neste lugar a função //irá abrir o mesmo, se não existir o banco de dados será criado... db->Open(caminho); //Vocês poderão ter um problema ao executar esta função, dizendo que Open possui mais de //um parâmetro, se isto acontecer, basta usá-la desta maneira: //db->Open(caminho, wxEmptyString); //O segundo parametro seria a senha para o banco de dados, //se estivessemos usando criptografia no mesmo... //retornamos o db... return db; } //Aqui vamos fechar a "conexão" com o banco de dados... void CloseDB(wxSQLite3Database* db) { //Vemos se db é verdadeiro... assert(db != NULL); //Fechamos db com o comando Close(); db->Close(); //Deletamos db da memória... delete db; }
Um exemplo de como utilizar as funções seria o seguinte, imagine que temos um arquivo em /home/usuario/banco.db e queremos abrí-lo:
//Vamos abrir o banco...
wxSQLite3Database *m_db = OpenDB(wxT(“/home/usuario/banco.db”));
//Aqui executo as operações desejadas, como inserir um dado ou fazer uma seleção...
…
//Aqui fechamos a conexão com o banco de dados...
CloseDB(m_db);
Bem fácil, não?
No próximo tutorial iremos criar o banco de dados da agenda pelo programa e faremos uma função para selecionarmos os dados do banco de dados.
Até a próxima.
2 comentários:
onde estão os arquivos com essa biblioteca wxsqlite3? não encontrei a parte que vc explicou como compilar...
Desculpe a demora na resposta, a compilação no Windows é simples, se você estiver usando o Visual C++ é só baixar o source nesse link http://sourceforge.net/projects/wxcode/files/Components/wxSQLite3/wxsqlite3-1.9.9.zip/download e depois abrir o projeto do visual c++ que está na pasta build, se estiver usando wxDev C++ ou code::blocks pode acompanhar a compilação nesse link, que está no outro blog http://wxnewbie.wordpress.com/2010/07/26/video-compilando-biblioteca-estatica-wxsqlite3/ qualquer coisa entre em contato, boa sorte.
Postar um comentário