protected object ExecuteReader(string storedProcedure, object[] @params, GenerateObjectFromReader fofr)
    {
        Database db = default(Database);

        try
        {
            db = DatabaseFactory.CreateDatabase(_ProvideName);
            IDataReader Idata = (IDataReader)(db.ExecuteReader(storedProcedure, @params));
            return(fofr(ref Idata));
        }
        catch (Exception ex)
        {
        }
        finally
        {
            //log to db
            db = null;
        }
        return(null);
    }
 protected object ExecuteReader(string storedProcedure, object[] @params, GenerateObjectFromReader fofr)
 {
     Database db = default(Database);
        try
        {
        db = DatabaseFactory.CreateDatabase(_ProvideName);
        IDataReader Idata = (IDataReader)(db.ExecuteReader(storedProcedure, @params));
        return fofr(ref Idata);
        }
     catch (Exception ex)
        {
        }
        finally
        {
        //log to db
        db = null;
        }
        return null;
 }