metadataengine/server/src/mdsfindsqlclause.cpp
branchRCL_3
changeset 10 ab88d4a85041
parent 8 50de4d668bb6
child 12 9f21bab39f42
equal deleted inserted replaced
9:82c0024438c8 10:ab88d4a85041
    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