Vala Sqlite Example
 
using GLib;
using Sqlite;
public class SqliteSample : GLib.Object {
    public static int callback (int n_columns, string[] values,
                                string[] column_names)
    {
        for (int i = 0; i < n_columns; i++) {
            stdout.printf ("%s = %s\n", column_names[i], values[i]);
        }
        stdout.printf ("\n");
        return 0;
    }
    public static int main (string[] args) {
        Database db;
        int rc;
        if (args.length != 3) {
            stderr.printf ("Usage: %s DATABASE SQL-STATEMENT\n", args[0]);
            return 1;
        }
        if (!FileUtils.test (args[1], FileTest.IS_REGULAR)) {
            stderr.printf ("Database %s does not exist or is directory\n", args[1]);
            return 1;
        }
        rc = Database.open (args[1], out db);
        if (rc != Sqlite.OK) {
            stderr.printf ("Can't open database: %d, %s\n", rc, db.errmsg ());
            return 1;
        }
        rc = db.exec (args[2], callback, null);
        
        
        if (rc != Sqlite.OK) { 
            stderr.printf ("SQL error: %d, %s\n", rc, db.errmsg ());
            return 1;
        }
        return 0;
    }
}
Compile and Run
$ valac --pkg sqlite3 -o sqlitesample SqliteSample.vala
$ ./sqlitesample
Retrieving rows from a database
using GLib;
using Sqlite;
void main (string[] args) {
    Database db;
    Statement stmt;
    int rc = 0;
    int col, cols;
    if (args.length != 3) {
        printerr ("Usage: %s DATABASE SQL-STATEMENT\n", args[0]);
        return;
    }
    if ((rc = Database.open (args[1], out db)) == 1) {
        printerr ("Can't open database: %s\n", db.errmsg ());
        return;
    }
    if ((rc = db.prepare_v2 (args[2], -1, out stmt, null)) == 1) {
        printerr ("SQL error: %d, %s\n", rc, db.errmsg ());
        return;
    }
    cols = stmt.column_count();
    do {
        rc = stmt.step();
        switch (rc) {
        case Sqlite.DONE:
            break;
        case Sqlite.ROW:
            for (col = 0; col < cols; col++) {
                string txt = stmt.column_text(col);
                print ("%s = %s\n", stmt.column_name (col), txt);
            }
            break;
        default:
            printerr ("Error: %d, %s\n", rc, db.errmsg ());
            break;
        }
    } while (rc == Sqlite.ROW);
}
Set up a database to test
$ sqlite3 testdb << EOF
CREATE TABLE tbl (data TEXT, num DOUBLE);
INSERT INTO tbl VALUES ("First row", 10);
INSERT INTO tbl VALUES ("Second row", 20);
EOF
Compile and run
$ valac --pkg sqlite3 -o sqlitesample2 SqliteSample2.vala
$ ./sqlitesample2 testdb "select * from tbl"
data = First row
num = 10.0
data = Second row
num = 20.0
 Vala/Examples