Crate sqlite [−] [src]
Interface to SQLite.
Example
Open a connection, create a table, and insert a couple of rows:
let connection = sqlite::open(":memory:").unwrap(); connection.execute(" CREATE TABLE users (name TEXT, age INTEGER); INSERT INTO users (name, age) VALUES ('Alice', 42); INSERT INTO users (name, age) VALUES ('Bob', 69); ").unwrap();
Select a row from the table:
connection.iterate("SELECT * FROM users WHERE age > 50", |pairs| { for &(column, value) in pairs.iter() { println!("{} = {}", column, value.unwrap()); } true }).unwrap();
The same query using a prepared statement:
use sqlite::State; let mut statement = connection.prepare(" SELECT * FROM users WHERE age > ? ").unwrap(); statement.bind(1, 50).unwrap(); while let State::Row = statement.next().unwrap() { println!("name = {}", statement.read::<String>(0).unwrap()); println!("age = {}", statement.read::<i64>(1).unwrap()); }
The same query using a cursor, which is a wrapper around a prepared statement:
use sqlite::Value; let mut cursor = connection.prepare(" SELECT * FROM users WHERE age > ? ").unwrap().cursor(); cursor.bind(&[Value::Integer(50)]).unwrap(); while let Some(row) = cursor.next().unwrap() { println!("name = {}", row[0].as_string().unwrap()); println!("age = {}", row[1].as_integer().unwrap()); }
Structs
Connection |
A database connection. |
Cursor |
An iterator over rows. |
Error |
An error. |
Statement |
A prepared statement. |
Enums
State |
A state of a prepared statement. |
Type |
A data type. |
Value |
A typed value. |
Traits
Bindable |
A type suitable for binding to a prepared statement. |
Readable |
A type suitable for reading from a prepared statement. |
Functions
open |
Open a connection to a new or existing database. |
version |
Return the version number of SQLite. |
Type Definitions
Result |
A result. |