SQLite Package Documentation Build

The package provides an interface to [SQLite].

Example

Open a connection, create a table, and insert a few rows:

rust let connection = sqlite::open(":memory:").unwrap(); let query = " CREATE TABLE users (name TEXT, age INTEGER); INSERT INTO users VALUES ('Alice', 42); INSERT INTO users VALUES ('Bob', 69); "; connection.execute(query).unwrap();

Select some rows and process them one by one as plain text, which is generally not efficient:

rust let query = "SELECT * FROM users WHERE age > 50"; connection .iterate(query, |pairs| { for &(name, value) in pairs.iter() { println!("{} = {}", name, value.unwrap()); } true }) .unwrap();

Run the same query but using a prepared statement, which is much more efficient than the previous technique:

```rust use sqlite::State;

let query = "SELECT * FROM users WHERE age > ?"; let mut statement = connection.prepare(query).unwrap(); statement.bind((1, 50)).unwrap();

while let Ok(State::Row) = statement.next() { println!("name = {}", statement.read::("name").unwrap()); println!("age = {}", statement.read::("age").unwrap()); } ```

Run the same query but using a cursor, which is iterable:

```rust let query = "SELECT * FROM users WHERE age > ?"; let mut statement = connection.prepare(query).unwrap();

for row in statement .iter() .bind((1, 50)) .unwrap() .map(|row| row.unwrap()) { println!("name = {}", row.read::<&str, _>("name")); println!("age = {}", row.read::("age")); } ```

Contribution

Your contribution is highly appreciated. Do not hesitate to open an issue or a pull request. Note that any contribution submitted for inclusion in the project will be licensed according to the terms given in LICENSE.md.