我正在尝试使用Rust和rusqlite从.sqlite文件读取/写入blob数据;但是,货物告诉我blob
在rusqlite中不存在。
这是我在the documentation中使用的示例代码:
use rusqlite::blob::ZeroBlob;
use rusqlite::{Connection, DatabaseName, NO_PARAMS};
use std::error::Error;
use std::io::{Read, Seek, SeekFrom, Write};
fn main() -> Result<(), Box<Error>> {
let db = Connection::open_in_memory()?;
db.execute_batch("CREATE TABLE test (content BLOB);")?;
db.execute(
"INSERT INTO test (content) VALUES (ZEROBLOB(10))",
NO_PARAMS,
)?;
let rowid = db.last_insert_rowid();
let mut blob = db.blob_open(DatabaseName::Main, "test", "content", rowid, false)?;
/* snip */
Ok(())
}
这是我的Cargo.toml文件:
[package]
# ...
[dependencies]
[dependencies.rusqlite]
version = "0.18.0"
features = ["bundled"]
应注意,我必须使用bundled
方法,因为标准rusqlite = "0.18.0"
对我不起作用。文档说blob
仅应与SQLite 3.7.4及更高版本一起使用,但是我看不出有任何旧版本的任何原因,而且我也不知道如何检查。有什么想法吗?