Get rid of sqlite3_errstr

This commit is contained in:
Ivan Ukhov 2015-05-29 16:41:34 -04:00
parent 74dbee006f
commit d549a64686
3 changed files with 11 additions and 16 deletions

View File

@ -32,13 +32,14 @@ impl<'l> Database<'l> {
match callback {
Some(callback) => {
let mut callback = Box::new(callback);
success!(raw::sqlite3_exec(self.raw, str_to_c_str!(sql),
Some(execute_callback),
&mut callback as *mut _ as *mut _, 0 as *mut _));
success!(self, raw::sqlite3_exec(self.raw, str_to_c_str!(sql),
Some(execute_callback),
&mut callback as *mut _ as *mut _,
0 as *mut _));
},
None => {
success!(raw::sqlite3_exec(self.raw, str_to_c_str!(sql), None, 0 as *mut _,
0 as *mut _));
success!(self, raw::sqlite3_exec(self.raw, str_to_c_str!(sql), None,
0 as *mut _, 0 as *mut _));
},
}
}
@ -50,8 +51,8 @@ impl<'l> Database<'l> {
pub fn statement(&mut self, sql: &str) -> Result<Statement<'l>> {
let mut raw = 0 as *mut _;
unsafe {
success!(raw::sqlite3_prepare(self.raw, str_to_c_str!(sql), -1, &mut raw,
0 as *mut _));
success!(self, raw::sqlite3_prepare(self.raw, str_to_c_str!(sql), -1, &mut raw,
0 as *mut _));
}
Ok(::statement::from_raw(raw))
}

View File

@ -8,7 +8,7 @@ macro_rules! raise(
);
macro_rules! success(
($result:expr, $database:expr) => (
($database:expr, $result:expr) => (
match $result {
::raw::SQLITE_OK => {},
code => match ::Error::last($database) {
@ -20,12 +20,7 @@ macro_rules! success(
($result:expr) => (
match $result {
::raw::SQLITE_OK => {},
code => return Err(::Error {
code: ::result::code_from_raw(code),
message: Some(c_str_to_string!(unsafe {
::raw::sqlite3_errstr(code)
})),
}),
code => return Err(::Error::from(::result::code_from_raw(code))),
}
);
);

View File

@ -60,8 +60,7 @@ fn failure() {
let (path, _directory) = setup();
let mut database = ok!(sqlite::open(&path));
match database.execute(":)", None) {
Err(error) => assert_eq!(error.message,
Some(String::from("SQL logic error or missing database"))),
Err(error) => assert_eq!(error.message, Some(String::from(r#"unrecognized token: ":""#))),
_ => assert!(false),
}
}