equal
deleted
inserted
replaced
13 * |
13 * |
14 * Description: Class constructs SQL search clauses for MdS.* |
14 * Description: Class constructs SQL search clauses for MdS.* |
15 */ |
15 */ |
16 |
16 |
17 // INCLUDE FILES |
17 // INCLUDE FILES |
|
18 #include <mdequery.h> |
18 #include "mdsfindsqlclause.h" |
19 #include "mdsfindsqlclause.h" |
19 #include "mdsfindsqlclausedef.h" |
20 #include "mdsfindsqlclausedef.h" |
20 #include "mdsclausebuffer.h" |
21 #include "mdsclausebuffer.h" |
21 #include "mdcserializationbuffer.h" |
22 #include "mdcserializationbuffer.h" |
22 #include "mdsquerycriteriadeserialization.h" |
23 #include "mdsquerycriteriadeserialization.h" |
2640 { |
2641 { |
2641 switch( iSearchCriteria->iQueryResultType ) |
2642 switch( iSearchCriteria->iQueryResultType ) |
2642 { |
2643 { |
2643 case EQueryResultModeItem: |
2644 case EQueryResultModeItem: |
2644 case EQueryResultModeId: |
2645 case EQueryResultModeId: |
|
2646 { |
|
2647 // "GROUP BY BO.ObjectId " |
|
2648 iQueryBuf->AppendL( KGroupByObjectId ); |
|
2649 } |
|
2650 break; |
2645 case EQueryResultModeCount: |
2651 case EQueryResultModeCount: |
2646 { |
2652 { |
2647 // "GROUP BY BO.ObjectId " |
|
2648 iQueryBuf->AppendL( KGroupByObjectId ); |
|
2649 } |
2653 } |
2650 break; |
2654 break; |
2651 |
2655 |
2652 default: |
2656 default: |
2653 #ifdef _DEBUG |
2657 #ifdef _DEBUG |
2662 // AppendOrderByL Appends ORDER BY statements |
2666 // AppendOrderByL Appends ORDER BY statements |
2663 // --------------------------------------------------------------------------- |
2667 // --------------------------------------------------------------------------- |
2664 // |
2668 // |
2665 void CMdSFindSqlClause::AppendOrderByL() |
2669 void CMdSFindSqlClause::AppendOrderByL() |
2666 { |
2670 { |
|
2671 if( iSearchCriteria->iQueryResultType == EQueryResultModeCount ) |
|
2672 { |
|
2673 // No need to sort or group if only one count is returned |
|
2674 return; |
|
2675 } |
|
2676 |
2667 if( iSearchCriteria->iOrderRules.iPtr.iCount > 0 ) |
2677 if( iSearchCriteria->iOrderRules.iPtr.iCount > 0 ) |
2668 { |
2678 { |
2669 iQueryBuf->AppendL( KOrderBy ); |
2679 iQueryBuf->AppendL( KOrderBy ); |
2670 |
2680 |
2671 iSerializedBuffer->PositionL( iSearchCriteria->iOrderRules.iPtr.iOffset ); |
2681 iSerializedBuffer->PositionL( iSearchCriteria->iOrderRules.iPtr.iOffset ); |
2826 iQueryBuf->AppendL( KLimit ); |
2836 iQueryBuf->AppendL( KLimit ); |
2827 iQueryBuf->BufferL().AppendNum( iSearchCriteria->iLimit ); |
2837 iQueryBuf->BufferL().AppendNum( iSearchCriteria->iLimit ); |
2828 iQueryBuf->AppendL( KComma ); |
2838 iQueryBuf->AppendL( KComma ); |
2829 iQueryBuf->BufferL().AppendNum( iSearchCriteria->iOffset ); |
2839 iQueryBuf->BufferL().AppendNum( iSearchCriteria->iOffset ); |
2830 } |
2840 } |
2831 else if ( iSearchCriteria->iLimit != KMaxTUint32 ) |
2841 else if ( iSearchCriteria->iLimit != KMdEQueryDefaultMaxCount ) |
2832 { |
2842 { |
2833 // 10 is maximum length of text format TUint32 |
2843 // 10 is maximum length of text format TUint32 |
2834 iQueryBuf->ReserveSpaceL( iQueryBuf->ConstBufferL().Length() + |
2844 iQueryBuf->ReserveSpaceL( iQueryBuf->ConstBufferL().Length() + |
2835 10 ); |
2845 10 ); |
2836 |
2846 |