diff --git a/src/dbexpression.cpp b/src/dbexpression.cpp index 19852ba..1891b75 100644 --- a/src/dbexpression.cpp +++ b/src/dbexpression.cpp @@ -296,7 +296,7 @@ DbExpression & DbExpression::group_end(pt::TextStream & stream) DbExpression & DbExpression::page(pt::TextStream & stream, size_t page_number, size_t page_size) { - stream << " LIMIT " << page_number << "," << page_size << " "; + stream << " LIMIT " << (page_number*page_size) << "," << page_size << " "; return *this; } diff --git a/src/dbexpression.h b/src/dbexpression.h index 0fc07ca..55e3d6f 100644 --- a/src/dbexpression.h +++ b/src/dbexpression.h @@ -64,6 +64,9 @@ public: virtual DbExpression & group_and(pt::TextStream & stream); virtual DbExpression & group_end(pt::TextStream & stream); + /* + * page_number starts from zero (it's a number of a page, not an offset) + */ virtual DbExpression & page(pt::TextStream & stream, size_t page_number, size_t page_size); template diff --git a/src/finder.h b/src/finder.h index 9ea817e..0088889 100644 --- a/src/finder.h +++ b/src/finder.h @@ -589,7 +589,9 @@ public: - + /* + * page_number start from zero (it's a number of a page, not an offset) + */ Finder & page(size_t page_number, size_t page_size) { if( out_stream && db_expression ) diff --git a/src/postgresqlexpression.cpp b/src/postgresqlexpression.cpp index 96cb585..4847570 100644 --- a/src/postgresqlexpression.cpp +++ b/src/postgresqlexpression.cpp @@ -100,7 +100,7 @@ void PostgreSQLExpression::esc(const pt::Date & date, pt::TextStream & stream, c DbExpression & PostgreSQLExpression::page(pt::TextStream & stream, size_t page_number, size_t page_size) { - stream << " OFFSET " << page_number << " LIMIT " << page_size << " "; + stream << " OFFSET " << (page_number*page_size) << " LIMIT " << page_size << " "; return *this; }