Expand description
Interface to SQLite.
§Example
Open a connection, create a table, and insert a few rows:
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:
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:
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::<String, _>("name").unwrap());
println!("age = {}", statement.read::<i64, _>("age").unwrap());
}
Run the same query but using a cursor, which is iterable:
let query = "SELECT * FROM users WHERE age > ?";
for row in connection
.prepare(query)
.unwrap()
.into_iter()
.bind((1, 50))
.unwrap()
.map(|row| row.unwrap())
{
println!("name = {}", row.read::<&str, _>("name"));
println!("age = {}", row.read::<i64, _>("age"));
}
Structs§
- A connection.
- A thread-safe connection.
- An iterator for a prepared statement.
- An iterator for a prepared statement with ownership.
- An error.
- Flags for opening a connection.
- A row.
- A prepared statement.
Enums§
- The state of a prepared statement.
- The type of a value.
- A value.
Traits§
- A type suitable for binding to a prepared statement.
- A type suitable for binding to a prepared statement given a parameter index.
- A type suitable for indexing columns in a prepared statement.
- A type suitable for indexing parameters in a prepared statement.
- A type suitable for reading from a prepared statement given a column index.
- A type suitable for indexing columns in a row.
Functions§
- Open a read-write connection to a new or existing database.
- Return the version number of SQLite.
Type Aliases§
- A result.