## SQLite

### Robert Carr

`<racarr@`gnome.org`>`

## API Reference

The sqlite module allows for manipulation and querying of sqlite databases.

    sqlite = imports.sqlite;

The SQLite module provides a selection of status enums, to be used as the return values of functions. For meanings, consult the SQLite C documentation.

    sqlite.[OK, ERROR, INTERNAL, PERM ABORT, BUSY,
            LOCKED, NOMEM, READONLY, INTERRUPT, CORRUPT,
            NOTFOUND, FULL, CANTOPEN, PROTOCOL, EMPTY,
            SCHEMA, TOOBIG, CONSTRAINT, MISMATCH, MISUSE,
            NOLFS, AUTH, FORMAT, RANGE, NOTADB, ROW, DONE]

### new sqlite.Database(filename)

Constructs a new sqlite.Database

`filename` | undefined
Returns | A new sqlite.Database object, the `status` property will be one of the SQLite status enums

### database.exec(command, callback)

Executes the SQLite `command` on the given database. If `callback` is defined, it is called with each table entry from the given command, with a single argument. The argument has properties for each value in the returned table entry.

Keep in mind that, just like in C, it is necessary to sanitize user input in your SQL before passing it to the database.

`command` | undefined
`callback` | undefined
Returns | An SQLite status enum representing the result of the operation

### database.close()

Closes an SQLite database and syncs

## Examples

Below are several examples of using the Seed sqlite module. For additional resources, consult the examples/ folder of the Seed source

Example 15.

This demonstrates creating a new table, populating it, and querying it for results

    sqlite = imports.sqlite;
    var db = new sqlite.Database("people.db");
    db.exec("create table people (key INTEGER PRIMARY KEY, name TEXT," +
                                 "age INTEGER, phone TEXT);");
    db.exec("insert into people(name, age, phone) " +
            "values('John Smith', 24, '555-123-4567');");

    function cb_print_phone(results) {
        print(results.phone);
    }

    db.exec("select * from people where name='John Smith';", cb_print_phone);
    db.close();