Come utilizzare la libreria sqlite (esempio)

Sqlite è una libreria con licenza di pubblico dominio ( per dettagli sulla licenza, vedere al link http://www.sqlite.org/copyright.html ) molto comoda nel caso si vogliano gestire database (non troppo pesanti) in maniera semplice e senza avere un database server (in quanto il database è contenuto in un unico file!) .

Ecco un esempio di come utilizzare la libreria sqlite tramite
visual studio 2008:

Ecco come fare:

1) Scaricare i sorgenti della libreria sqlite da questo link:
http://www.sqlite.org/sqlite-amalgamation-3070800.zip

2) Creare, tramite visual studio 2008 (ma anche con il visual studio 2005 non ci dovrebbero essere problemi),
un nuovo progetto c++ di tipo “win 32 console” (dire che non si vogliono avere i  “precompiled headers”);

3) Nel progetto mettere, come main, il sorgente c++ di prova , seguente:

#include “stdafx.h”

#include <stdio.h>
#include <stdlib.h>

#include “sqlite-amalgamation-3070800/sqlite3.h”

static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf(“%s = %s\n”, azColName[i], argv[i] ? argv[i] : “NULL”);
}
printf(“\n”);
return 0;
}

int main(int argc, char **argv){
sqlite3 *db;
char *zErrMsg = 0;
int rc;

if( argc!=3 ){
fprintf(stderr, “Usage: %s DATABASE SQL-STATEMENT\n”, argv[0]);
exit(1);
}
rc = sqlite3_open(argv[1], &db);
if( rc ){
fprintf(stderr, “Can’t open database: %s\n”, sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, “SQL error: %s\n”, zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return 0;
}

4) Nella directory del suddetto progetto creato, copiare la directory che è contenuta
nel zip file sqlite-amalgamation-3070800.zip (la directory si chiama sqlite-amalgamation-3070800) .

5) Nel progetto, appena creato, aggiungere  (sono nella directory sqlite-amalgamation-3070800)
anche gli header file sqlite3.h e sqlite3ext.h ,
e aggiungere il source file sqlite3.cpp .

6) Compilare la soluzione del progetto, non si dovrebbero avere errori.

7) Andare , con una console, alla directory dove è stato prodotto l’eseguibile
(per esempio io la soluzione l’ho chiamata PROVADB e, per cui (nella sottodirectory Debug)
è stato prodotto PROVADB.exe ).

Il programma vuole come primo argomento il nome del db (se non esiste viene creato, come vedrete, il db sarà semplicemente
contenuto dentro un file con lo stesso nome), e poi vuole
(racchiuse tra doppi apici) l’istruzione sql completa.

Impartire questi comandi (esempio):

PROVADB dbexample “CREATE TABLE example (nome varchar(255), cognome VARCHAR(100), numerotelefono varchar(20));”

PROVADB dbexample “INSERT INTO example (nome, cognome, numerotelefono) VALUES (‘pinco’, ‘pallo’, ‘094534’)”

PROVADB dbexample “INSERT INTO example (nome, cognome, numerotelefono) VALUES (‘daniele’, ‘bianchi’, ‘23231’)”

PROVADB dbexample “INSERT INTO example (nome, cognome, numerotelefono) VALUES (‘francesco’, ‘rossi’, ‘823758’)”

PROVADB dbexample “select * from example”

Si vedrà questo output:

nome = pinco
cognome = pallo
numerotelefono = 094534

nome = daniele
cognome = bianchi
numerotelefono = 23231

nome = francesco
cognome = rossi
numerotelefono = 823758

Spero sia tutto chiaro, nel caso di problemi, ulteriori dettagli sulla libreria si trovano qui:
http://www.sqlite.org/quickstart.html

Annunci

Programmazione con eclipse

Per chi programma in linux (ma non solo):
un potente IDE configurabile con diversi linguaggi (tra cui java e c++, ma anche moltissimi altri):
eclipse

Lo trovate a questo link:
http://www.eclipse.org/

Naturalmente è gratuito .
Ciao.