Check for statement close errors in execute
This commit is contained in:
parent
d674b8a4a0
commit
7ba9db9b6f
22
src/lib.rs
22
src/lib.rs
@ -853,7 +853,10 @@ impl Connection {
|
|||||||
///
|
///
|
||||||
/// On success, returns the number of rows modified or 0 if not applicable.
|
/// On success, returns the number of rows modified or 0 if not applicable.
|
||||||
pub fn execute(&self, query: &str, params: &[&ToSql]) -> Result<uint> {
|
pub fn execute(&self, query: &str, params: &[&ToSql]) -> Result<uint> {
|
||||||
self.prepare(query).and_then(|stmt| stmt.execute(params))
|
let stmt = try!(self.prepare(query));
|
||||||
|
let out = try!(stmt.execute(params));
|
||||||
|
try!(stmt.finish());
|
||||||
|
Ok(out)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Execute a sequence of SQL statements.
|
/// Execute a sequence of SQL statements.
|
||||||
@ -999,7 +1002,10 @@ impl<'conn> Transaction<'conn> {
|
|||||||
|
|
||||||
/// Like `Connection::execute`.
|
/// Like `Connection::execute`.
|
||||||
pub fn execute(&self, query: &str, params: &[&ToSql]) -> Result<uint> {
|
pub fn execute(&self, query: &str, params: &[&ToSql]) -> Result<uint> {
|
||||||
self.prepare(query).and_then(|s| s.execute(params))
|
let stmt = try!(self.prepare(query));
|
||||||
|
let out = try!(stmt.execute(params));
|
||||||
|
try!(stmt.finish());
|
||||||
|
Ok(out)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Like `Connection::batch_execute`.
|
/// Like `Connection::batch_execute`.
|
||||||
@ -1680,9 +1686,7 @@ pub trait GenericConnection {
|
|||||||
fn prepare<'a>(&'a self, query: &str) -> Result<Statement<'a>>;
|
fn prepare<'a>(&'a self, query: &str) -> Result<Statement<'a>>;
|
||||||
|
|
||||||
/// Like `Connection::execute`.
|
/// Like `Connection::execute`.
|
||||||
fn execute(&self, query: &str, params: &[&ToSql]) -> Result<uint> {
|
fn execute(&self, query: &str, params: &[&ToSql]) -> Result<uint>;
|
||||||
self.prepare(query).and_then(|s| s.execute(params))
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Like `Connection::prepare_copy_in`.
|
/// Like `Connection::prepare_copy_in`.
|
||||||
fn prepare_copy_in<'a>(&'a self, table: &str, columns: &[&str])
|
fn prepare_copy_in<'a>(&'a self, table: &str, columns: &[&str])
|
||||||
@ -1700,6 +1704,10 @@ impl GenericConnection for Connection {
|
|||||||
self.prepare(query)
|
self.prepare(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn execute(&self, query: &str, params: &[&ToSql]) -> Result<uint> {
|
||||||
|
self.execute(query, params)
|
||||||
|
}
|
||||||
|
|
||||||
fn transaction<'a>(&'a self) -> Result<Transaction<'a>> {
|
fn transaction<'a>(&'a self) -> Result<Transaction<'a>> {
|
||||||
self.transaction()
|
self.transaction()
|
||||||
}
|
}
|
||||||
@ -1719,6 +1727,10 @@ impl<'a> GenericConnection for Transaction<'a> {
|
|||||||
self.prepare(query)
|
self.prepare(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn execute(&self, query: &str, params: &[&ToSql]) -> Result<uint> {
|
||||||
|
self.execute(query, params)
|
||||||
|
}
|
||||||
|
|
||||||
fn transaction<'a>(&'a self) -> Result<Transaction<'a>> {
|
fn transaction<'a>(&'a self) -> Result<Transaction<'a>> {
|
||||||
self.transaction()
|
self.transaction()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user