private T ExecuteScalar <T>( IAdoProcedure procedure, ICommand command, SQLiteConnection connection, SQLiteTransaction transaction) { var context = CreateContext(command, connection, transaction, null, null, null); try { using (var dataReader = procedure.Execute(context)) { if (dataReader == null) { return(default(T)); } if (!dataReader.Read()) { return(default(T)); } return(dataReader.Get <T>(0)); } } catch (Exception e) { throw new AdoProcedureException(command, connection, e, "ExecuteScalar<" + typeof(T).Name + ">"); } }
private long ExecuteNonQuery( IAdoProcedure procedure, ICommand command, SQLiteConnection connection, SQLiteTransaction transaction) { var context = CreateContext(command, connection, transaction, null, null, null); try { using (procedure.Execute(context)) { return(context.RowsAffected); } } catch (Exception e) { throw new AdoProcedureException(command, connection, e, "ExecuteNonQuery"); } }
private IDataReader ExecuteReader( IAdoProcedure procedure, ICommand command, SQLiteConnection connection, SQLiteTransaction transaction, string dataShapeName, Action <IDataReader> closeAction, Action <IDataReader> errorAction) { var context = CreateContext(command, connection, transaction, dataShapeName, closeAction, errorAction); try { return(procedure.Execute(context)); } catch (Exception e) { throw new AdoProcedureException(command, connection, e, "ExecuteReader"); } }