public static IEnumerable <T> ToColIterator <T>(this SqlBuilder sqlBuilder, BeanApi api, params object[] parameters) { var query = sqlBuilder.ToSql(); return(query.StartsWith("SELECT") ? api.ColIterator <T>(query, parameters) : throw NotAnSqlQueryException.Create()); }
public static IEnumerable <IDictionary <string, object> > ToRowsIterator(this SqlBuilder sqlBuilder, BeanApi api, params object[] parameters) { var query = sqlBuilder.ToSql(); return(query.StartsWith("SELECT") ? api.RowsIterator(query, parameters) : throw NotAnSqlQueryException.Create()); }
public static T FetchScalar <T>(this SqlBuilder sqlBuilder, BeanApi api, bool useCache = true, params object[] parameters) { var query = sqlBuilder.ToSql(); return(query.StartsWith("SELECT") ? api.Cell <T>(useCache, query, parameters) : throw NotAnSqlQueryException.Create()); }
public static IDictionary <string, object>[] Fetch(this SqlBuilder sqlBuilder, BeanApi api, bool useCache = true, params object[] parameters) { var query = sqlBuilder.ToSql(); return(query.StartsWith("SELECT") ? api.Rows(useCache, query, parameters) : throw NotAnSqlQueryException.Create()); }
public static IDictionary <string, object>[] FetchPaginated(this SqlBuilder sqlBuilder, BeanApi api, int pageNo, int perPage = 10, bool useCache = true, params object[] parameters) { var query = sqlBuilder.ToSql(); if (!query.StartsWith("SELECT")) { throw NotAnSqlQueryException.Create(); } var pagination = PrepareFetchedPagination(api, query, pageNo, perPage); var dbDetails = api.CreateDetails(); return(api.Rows(useCache, $"{query} {dbDetails.Paginate(pagination.CurrentPage, perPage)}", parameters)); }