mirror of
https://github.com/isar/rusqlite.git
synced 2024-11-26 03:11:36 +08:00
Merge pull request #988 from gwenn/error_handle
Retrieve error message from database connection handle
This commit is contained in:
commit
01b52990da
@ -40,7 +40,7 @@ use std::time::Duration;
|
||||
|
||||
use crate::ffi;
|
||||
|
||||
use crate::error::{error_from_handle, error_from_sqlite_code};
|
||||
use crate::error::error_from_handle;
|
||||
use crate::{Connection, DatabaseName, Result};
|
||||
|
||||
impl Connection {
|
||||
@ -169,7 +169,7 @@ pub struct Progress {
|
||||
/// A handle to an online backup.
|
||||
pub struct Backup<'a, 'b> {
|
||||
phantom_from: PhantomData<&'a Connection>,
|
||||
phantom_to: PhantomData<&'b Connection>,
|
||||
to: &'b Connection,
|
||||
b: *mut ffi::sqlite3_backup,
|
||||
}
|
||||
|
||||
@ -223,7 +223,7 @@ impl Backup<'_, '_> {
|
||||
|
||||
Ok(Backup {
|
||||
phantom_from: PhantomData,
|
||||
phantom_to: PhantomData,
|
||||
to,
|
||||
b,
|
||||
})
|
||||
}
|
||||
@ -263,7 +263,7 @@ impl Backup<'_, '_> {
|
||||
ffi::SQLITE_OK => Ok(More),
|
||||
ffi::SQLITE_BUSY => Ok(Busy),
|
||||
ffi::SQLITE_LOCKED => Ok(Locked),
|
||||
_ => Err(error_from_sqlite_code(rc, None)),
|
||||
_ => self.to.decode_result(rc).map(|_| More),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -44,15 +44,14 @@ impl<'conn> Blob<'conn> {
|
||||
// losslessly converted to i32, since `len` came from an i32.
|
||||
// Sanity check the above.
|
||||
debug_assert!(i32::try_from(write_start).is_ok() && i32::try_from(buf.len()).is_ok());
|
||||
unsafe {
|
||||
check!(ffi::sqlite3_blob_write(
|
||||
self.conn.decode_result(unsafe {
|
||||
ffi::sqlite3_blob_write(
|
||||
self.blob,
|
||||
buf.as_ptr() as *const _,
|
||||
buf.len() as i32,
|
||||
write_start as i32,
|
||||
));
|
||||
}
|
||||
Ok(())
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
/// An alias for `write_at` provided for compatibility with the conceptually
|
||||
@ -151,12 +150,12 @@ impl<'conn> Blob<'conn> {
|
||||
debug_assert!(i32::try_from(read_len).is_ok());
|
||||
|
||||
unsafe {
|
||||
check!(ffi::sqlite3_blob_read(
|
||||
self.conn.decode_result(ffi::sqlite3_blob_read(
|
||||
self.blob,
|
||||
buf.as_mut_ptr() as *mut _,
|
||||
read_len as i32,
|
||||
read_start as i32,
|
||||
));
|
||||
))?;
|
||||
|
||||
Ok(from_raw_parts_mut(buf.as_mut_ptr() as *mut u8, read_len))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user