Beispiel #1
0
const void *sqlite3_column_table_name16(sqlite3_stmt *pStmt, int N){
  return columnName(
      pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, COLNAME_TABLE);
}
Beispiel #2
0
const void *sqlite3_column_decltype16(sqlite3_stmt *pStmt, int N){
  return columnName(
      pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, COLNAME_DECLTYPE);
}
Beispiel #3
0
/*
** Return the name of the database from which a result column derives.
** NULL is returned if the result column is an expression or constant or
** anything else which is not an unabiguous reference to a database column.
*/
const char *sqlite3_column_database_name(sqlite3_stmt *pStmt, int N){
  return columnName(
      pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, COLNAME_DATABASE);
}
QString CntFilterDetailDisplayLabel::createSelectQuery(const QContactFilter& filter,
                                  const QList<QContactSortOrder>& sortOrders,
                                  QContactManager::Error* error) const
{
    Q_UNUSED(sortOrders);
    QString result;
    //Commented currently since this will be checked in contacts call intially
    //if(filterSupported(filter))
    {
        const QContactDetailFilter detailFilter(filter);
        
        *error = QContactManager::NoError;
        
        //get the contact fields that should be checked
        CntDisplayLabel displayLabel;
        QList<QPair<QLatin1String, QLatin1String> > contactFields = displayLabel.contactFilterDetails();
        
        //search values
        QStringList searchStrings = detailFilter.value().toStringList();

        //default sql query
        result = "SELECT contact_id FROM contact WHERE (type_flags>>24)=0";
        
        //everything ok
        if(!searchStrings.isEmpty() && searchStrings.count() <= contactFields.count() )
        {
            QString subQuery;
            QStringList columns;
            
            //get the column names
            for(int i = 0; i < contactFields.count(); i++)
            {
                columns << columnName(contactFields.at(i));
            }
            
            //single search value
            if(searchStrings.count() == 1)
            {
                createQuerySingleSearchValue(subQuery, searchStrings.at(0), columns);
            }
            
            //multiple search values
            else
            {
                createQueryMultipleSearchValues(subQuery, searchStrings, columns);    
            }
            
            if(!subQuery.isEmpty()){
                result += " AND (" + subQuery + ')';
            }
       
            *error = QContactManager::NoError;
        }
        
        //if specified more filter criterias than contact fields return error
        else if(searchStrings.count() > contactFields.count()){
            *error = QContactManager::BadArgumentError;
        }
    }
    
    return result;
}