mirror of
				https://github.com/isar/rusqlite.git
				synced 2025-10-31 22:08:55 +08:00 
			
		
		
		
	Merge branch 'reset_asap' of https://github.com/gwenn/rusqlite into gwenn-reset_asap
This commit is contained in:
		
							
								
								
									
										18
									
								
								src/lib.rs
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								src/lib.rs
									
									
									
									
									
								
							| @@ -613,20 +613,11 @@ impl<'conn> SqliteStatement<'conn> { | ||||
|     /// } | ||||
|     /// ``` | ||||
|     pub fn execute(&mut self, params: &[&ToSql]) -> SqliteResult<c_int> { | ||||
|         self.reset_if_needed(); | ||||
|  | ||||
|         unsafe { | ||||
|             assert!(params.len() as c_int == ffi::sqlite3_bind_parameter_count(self.stmt), | ||||
|                     "incorrect number of parameters to execute(): expected {}, got {}", | ||||
|                     ffi::sqlite3_bind_parameter_count(self.stmt), | ||||
|                     params.len()); | ||||
|             try!(self.bind_parameters(params)); | ||||
|  | ||||
|             for (i, p) in params.iter().enumerate() { | ||||
|                 try!(self.conn.decode_result(p.bind_parameter(self.stmt, (i + 1) as c_int))); | ||||
|             } | ||||
|  | ||||
|             self.needs_reset = true; | ||||
|             let r = ffi::sqlite3_step(self.stmt); | ||||
|             ffi::sqlite3_reset(self.stmt); | ||||
|             match r { | ||||
|                 ffi::SQLITE_DONE => { | ||||
|                     if self.column_count != 0 { | ||||
| @@ -669,11 +660,12 @@ impl<'conn> SqliteStatement<'conn> { | ||||
|             try!(self.bind_parameters(params)); | ||||
|         } | ||||
|  | ||||
|         self.needs_reset = true; | ||||
|         Ok(SqliteRows::new(self)) | ||||
|     } | ||||
|  | ||||
|     /// Executes the prepared statement and maps a function over the resulting | ||||
|     /// rows.  | ||||
|     /// rows. | ||||
|     /// | ||||
|     /// Unlike the iterator produced by `query`, the returned iterator does not expose the possibility | ||||
|     /// for accessing stale rows. | ||||
| @@ -707,8 +699,6 @@ impl<'conn> SqliteStatement<'conn> { | ||||
|             try!(self.conn.decode_result(p.bind_parameter(self.stmt, (i + 1) as c_int))); | ||||
|         } | ||||
|  | ||||
|         self.needs_reset = true; | ||||
|  | ||||
|         Ok(()) | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user