Use sqlite3_errstr

when `sqlite3_errcode` doesn't match result code.
Mostly with SQLITE_MISUSE.
This commit is contained in:
gwenn
2024-12-06 21:19:42 +01:00
parent d3f04ae23e
commit d142c00a1c
2 changed files with 22 additions and 9 deletions

View File

@@ -1286,7 +1286,12 @@ mod test {
let mut stmt = conn.prepare("")?;
assert_eq!(0, stmt.column_count());
stmt.parameter_index("test")?;
stmt.step().unwrap_err();
let err = stmt.step().unwrap_err();
assert_eq!(err.sqlite_error_code(), Some(crate::ErrorCode::ApiMisuse));
assert_eq!(
err.to_string(),
"bad parameter or other API misuse".to_owned()
);
stmt.reset()?; // SQLITE_OMIT_AUTORESET = false
stmt.execute([]).unwrap_err();
Ok(())