diff --git a/sqlor/mssqlor.py b/sqlor/mssqlor.py index 25edad8..83d6fcd 100755 --- a/sqlor/mssqlor.py +++ b/sqlor/mssqlor.py @@ -66,7 +66,7 @@ class MsSqlor(SQLor): def pagingSQLmodel(self): return u"""select * from ( - select row_number() over(order by $[sort]$ $[order]$) as _row_id,page_s.* + select row_number() over(order by $[sort]$) as _row_id,page_s.* from (%s) page_s ) A where _row_id >= $[from_line]$ and _row_id < $[end_line]$""" diff --git a/sqlor/mysqlor.py b/sqlor/mysqlor.py index 9088a06..c31237e 100755 --- a/sqlor/mysqlor.py +++ b/sqlor/mysqlor.py @@ -71,35 +71,8 @@ class MySqlor(SQLor): d = [ i['value'] for i in dataList] return tuple(d) - def pagingSQL(self,sql,paging,NS): - """ - default it not support paging - """ - page = int(NS.get(paging['pagename'],1)) - rows = int(NS.get(paging['rowsname'],ROWS)) - sort = NS.get(paging.get('sortname','sort'),None) - order = NS.get(paging.get('ordername','asc'),'asc') - if not sort: - return sql - if page < 1: - page = 1 - from_line = (page - 1) * rows - end_line = page * rows + 1 - psql = self.pagingSQLmodel() - ns={ - 'from_line':from_line, - 'end_line':end_line, - 'rows':rows, - 'sort':sort, - 'order':order, - } - ac = ArgsConvert('$[',']$') - psql = ac.convert(psql,ns) - retSQL=psql % sql - return retSQL - def pagingSQLmodel(self): - return u"""select * from (%s) A order by $[sort]$ $[order]$ + return u"""select * from (%s) A order by $[sort]$ limit $[from_line]$,$[rows]$""" def tablesSQL(self): diff --git a/sqlor/oracleor.py b/sqlor/oracleor.py index b7d30ee..d34b0c4 100755 --- a/sqlor/oracleor.py +++ b/sqlor/oracleor.py @@ -62,7 +62,7 @@ class Oracleor(SQLor): from ( select page_s.*,rownum row_id from (%s) page_s - order by $[sort]$ $[order]$ + order by $[sort]$ ) where row_id >=$[from_line]$ and row_id < $[end_line]$""" diff --git a/sqlor/postgresqlor.py b/sqlor/postgresqlor.py index 243b1c2..7abe110 100755 --- a/sqlor/postgresqlor.py +++ b/sqlor/postgresqlor.py @@ -61,7 +61,7 @@ class PostgreSQLor(SQLor): from ( select page_s.*,rownum row_id from (%s) page_s - order by $[sort]$ $[order]$ + order by $[sort]$ ) where row_id >=$[from_line]$ and row_id < $[end_line]$""" diff --git a/sqlor/sor.py b/sqlor/sor.py index 45423b2..56878d1 100755 --- a/sqlor/sor.py +++ b/sqlor/sor.py @@ -181,7 +181,8 @@ class SQLor(object): page = int(NS.get(paging['pagename'],1)) rows = int(NS.get(paging['rowsname'],ROWS)) sort = NS.get(paging.get('sortname','sort'),None) - order = NS.get(paging.get('ordername','asc'),'asc') + if isinstance(sort, dict): + sort = ','.join(sort) if not sort: return sql if page < 1: @@ -194,7 +195,7 @@ class SQLor(object): 'end_line':end_line, 'rows':rows, 'sort':sort, - 'order':order, + 'order':'', } ac = ArgsConvert('$[',']$') psql = ac.convert(psql,ns) diff --git a/sqlor/sqlite3or.py b/sqlor/sqlite3or.py index a57ab4f..959a5f4 100755 --- a/sqlor/sqlite3or.py +++ b/sqlor/sqlite3or.py @@ -38,7 +38,7 @@ class SQLite3or(SQLor): return tuple(d) def pagingSQLmodel(self): - sql = u"""select * from (%s) order by $[sort]$ $[order]$ limit $[from_line]$,$[end_line]$""" + sql = u"""select * from (%s) order by $[sort]$ limit $[from_line]$,$[end_line]$""" return sql def tablesSQL(self):