Nel progetto Dev-C++ si devono impostare l'utlizzo della libreria SQLite come indicato nella figura sottostante
per utilizzare il programma mediante Dev-C++ e' necessario che la libreria libsqlite3-0.dll sia accessibile (nella stessa directory dove viene ubicato l'eseguibile oppure in una directory di sistema di Windows...attenzione che dal sito di SQLite si scarica una dll nominata sqlite3.dll che non funziona all'interno di Dev-C++..si deve impiegare quella inserita nel DevPack)
Altrimenti dentro Linux il file puo' essere compilato con la seguente riga di comando
gcc -o sqlite_test sqlite_test.c -Wall -O3 -lsqlite3
di seguito viene riportato il codice sorgente che e' sostanzialmente autoesplicativo in quanto effettua delle exec di comandi SQL
------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
int main(int argc, char **argv){
sqlite3 *db;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("utenti.db", &db);
if (rc == SQLITE_OK)
{
rc = sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS users (Id INTEGER PRIMARY KEY,username TEXT, password TEXT, email TEXT)", NULL, 0, &zErrMsg);
if (rc != SQLITE_OK) fprintf(stderr, "SQL error: %s\n", zErrMsg);
rc = sqlite3_exec(db, "INSERT INTO users VALUES (NULL,\"luca\",\"password\",\"lucainnoc@gmail.com\")", NULL, 0, &zErrMsg);
if (rc != SQLITE_OK) fprintf(stderr, "SQL error: %s\n", zErrMsg);
rc = sqlite3_exec(db, "INSERT INTO users VALUES (NULL,\"chiara\",\"password\",\"chiara@gmail.com\")", NULL, 0, &zErrMsg);
if (rc != SQLITE_OK) fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_stmt *stmt;
rc = sqlite3_prepare_v2(db, "SELECT * FROM users", -1, &stmt, 0);
if (rc == SQLITE_OK) {
int nCols = sqlite3_column_count(stmt);
if (nCols)
{
for (int nCol = 0; nCol < nCols; nCol++)
printf("%s\t", sqlite3_column_name(stmt, nCol));
printf("\n");
while ((rc = sqlite3_step(stmt)) == SQLITE_ROW)
for (int nCol = 0; nCol < nCols; nCol++)
printf("%s\t", sqlite3_column_text(stmt, nCol));
printf("\n");
}
sqlite3_finalize(stmt);
}
rc = sqlite3_exec(db, "DELETE FROM users", NULL, 0, &zErrMsg);
if (rc != SQLITE_OK) fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_close(db);
} else {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
return 0;
}