Home » U++ Library support » U++ SQL » OrderBy Descending missing
OrderBy Descending missing [message #21048] |
Tue, 28 April 2009 19:25 |
phirox
Messages: 49 Registered: December 2007
|
Member |
|
|
I found this previous topic about the same thing. But it says there is a descending() function, I could find no such thing. So I just added the suggested OrderByDesc() function.
In Sqlexp.h:
SqlSelect& OrderByDesc(const SqlSet& columnset);
SqlSelect& OrderByDesc(SqlVal a) { return OrderByDesc(SqlSet(a)); }
SqlSelect& OrderByDesc(SqlVal a, SqlVal b) { return OrderByDesc(SqlSet(a, b)); }
SqlSelect& OrderByDesc(SqlVal a, SqlVal b, SqlVal c) { return OrderByDesc(SqlSet(a, b, c)); }
And in SqlStatement.cpp
SqlSelect& SqlSelect::OrderByDesc(const SqlSet& set) {
if(!set.IsEmpty())
text << " order by " << ~set << " desc";
return *this;
}
[Updated on: Wed, 29 April 2009 10:04] Report message to a moderator
|
|
|
Re: OrderBy Descending missing [with fix] [message #21049 is a reply to message #21048] |
Tue, 28 April 2009 19:35 |
|
mirek
Messages: 13975 Registered: November 2005
|
Ultimate Member |
|
|
phirox wrote on Tue, 28 April 2009 13:25 | I found this previous topic about the same thing. But it says there is a descending() function, I could find no such thing. So I just added the suggested OrderByDesc() function.
In Sqlexp.h:
SqlSelect& OrderByDesc(const SqlSet& columnset);
SqlSelect& OrderByDesc(SqlVal a) { return OrderByDesc(SqlSet(a)); }
SqlSelect& OrderByDesc(SqlVal a, SqlVal b) { return OrderByDesc(SqlSet(a, b)); }
SqlSelect& OrderByDesc(SqlVal a, SqlVal b, SqlVal c) { return OrderByDesc(SqlSet(a, b, c)); }
And in SqlStatement.cpp
SqlSelect& SqlSelect::OrderByDesc(const SqlSet& set) {
if(!set.IsEmpty())
text << " order by " << ~set << " desc";
return *this;
}
|
Well, this is taken from the code I am working on now:
sql * Select(ROK, CISLO).From(STIZNOST).OrderBy(Descending(ROK), CISLO);
As argument of OrderBy is set, function is must...
Mirek
|
|
|
Re: OrderBy Descending missing [with fix] [message #21052 is a reply to message #21049] |
Tue, 28 April 2009 21:33 |
|
Actually, I prefer OrderByDesc and SelectDistinct. The main reson is you can't write
Select(Disctinct(ID, NAME, AGE))
instead one must write
Select(Disctinct(SqlSet(ID, NAME, AGE)))
And what I like
SelectDisctinct(ID, NAME, AGE) //or
SelectUnique(ID, NAME, AGE)
Same story with Descending.
We could provide __Expand(SelectDistinct). Same should be done with OrderBy (OrderByDesc) and GroupBy. Now only three args can be passed.
|
|
|
|
Goto Forum:
Current Time: Sat Apr 20 11:29:58 CEST 2024
Total time taken to generate the page: 0.03602 seconds
|