void UPnpCDSExtension::CreateItems( UPnpCDSRequest *pRequest, UPnpCDSExtensionResults *pResults, int nNodeIdx, const QString &sKey, bool bAddRef ) { pResults->m_nTotalMatches = 0; pResults->m_nUpdateID = 1; UPnpCDSRootInfo *pInfo = GetRootInfo( nNodeIdx ); if (pInfo == NULL) return; pResults->m_nTotalMatches = GetCount( pInfo->column, sKey ); pResults->m_nUpdateID = 1; if (pRequest->m_nRequestedCount == 0) pRequest->m_nRequestedCount = SHRT_MAX; MSqlQuery query(MSqlQuery::InitCon()); if (query.isConnected()) { QString sWhere( "" ); QString sOrder( "" ); if ( sKey.length() > 0) { sWhere = QString( "WHERE %1=:KEY " ) .arg( pInfo->column ); } QString orderColumn( pInfo->orderColumn ); if (orderColumn.length() != 0) { sOrder = QString( "ORDER BY %1 " ) .arg( orderColumn ); } QString sSQL = QString( "%1 %2 LIMIT %3, %4" ) .arg( GetItemListSQL( pInfo->column ) ) .arg( sWhere + sOrder ) .arg( pRequest->m_nStartingIndex ) .arg( pRequest->m_nRequestedCount ); query.prepare ( sSQL ); if ( sKey.length() ) query.bindValue(":KEY", sKey ); if (query.exec()) { while(query.next()) AddItem( pRequest, pRequest->m_sObjectId, pResults, bAddRef, query ); } } }
void UPnpCDSMusic::BuildItemQuery( MSqlQuery &query, const QStringMap &mapParams ) { int nId = mapParams[ "Id" ].toInt(); QString sSQL = QString( "%1 WHERE song.song_id=:ID " ) .arg( GetItemListSQL() ); query.prepare( sSQL ); query.bindValue( ":ID", (int)nId ); }
void UPnpCDSTv::BuildItemQuery( MSqlQuery &query, const QStringMap &mapParams ) { int nChanId = mapParams[ "ChanId" ].toInt(); QString sStartTime = mapParams[ "StartTime" ]; QString sSQL = QString( "%1 WHERE chanid=:CHANID and starttime=:STARTTIME " ) .arg( GetItemListSQL() ); query.prepare( sSQL ); query.bindValue(":CHANID" , (int)nChanId ); query.bindValue(":STARTTIME", sStartTime ); }