private boolean execGetFeatureGroup(VectorMap queryParam, StringBuffer respBody, DBAccess dbAccess) throws SQLException {
        int clntIdx = queryParam.qpIndexOfKeyNoCase("clnt");
        String clientName = (String) queryParam.getVal(clntIdx);

        int usrIdx = queryParam.qpIndexOfKeyNoCase("usr");
        if (usrIdx == -1) {
            WebServer.win.log.error("-The parameter usr is missing: ");
            return false;
        }
        String user = (String) queryParam.getVal(usrIdx);

        String nameParameter = null;
        int nameIdx = queryParam.qpIndexOfKeyNoCase("name");
        if (usrIdx != -1) {
            nameParameter = (String) queryParam.getVal(nameIdx);
        }

        StringBuilder sql = new StringBuilder();
        sql.append("SELECT " + DBAccess.FTRGROUPSFTRS_TABLE_FIELD_GROUP + ",SUM(" + DBAccess.UPROFILE_TABLE_FIELD_NUMVALUE + ") AS val FROM " + DBAccess.UPROFILE_TABLE + "," + DBAccess.FTRGROUPSFTRS_TABLE + " WHERE " + DBAccess.UPROFILE_TABLE + "." + DBAccess.FIELD_PSCLIENT + "='").append(clientName).append("' AND " + DBAccess.FTRGROUPSFTRS_TABLE + "." + DBAccess.FIELD_PSCLIENT + "='").append(clientName).append("'");
        sql.append(" AND " + DBAccess.UPROFILE_TABLE_FIELD_USER + "=?");
        sql.append(" AND " + DBAccess.UPROFILE_TABLE_FIELD_FEATURE + "=" + DBAccess.FTRGROUPSFTRS_TABLE_TABLE_FIELD_FTR);

        //creates the sql
        if (nameParameter != null) {
            String[] names = nameParameter.split("|");
            if (names[0].contains("*")) {
                sql.append(" AND ( " + DBAccess.FTRGROUPSFTRS_TABLE_FIELD_GROUP + " LIKE ?");
            } else {
                sql.append(" AND ( " + DBAccess.FTRGROUPSFTRS_TABLE_FIELD_GROUP + "=?");
            }
            for (int i = 1; i < names.length; i++) {
                System.out.println(names[i]);
                if (names[i].contains("*")) {
                    names[i] = names[i].replace("*", "%");
                    sql.append(" OR " + DBAccess.FTRGROUPSFTRS_TABLE_FIELD_GROUP + " LIKE ?");
                } else {
                    sql.append(" OR " + DBAccess.FTRGROUPSFTRS_TABLE_FIELD_GROUP + "=?");
                }
            }
            sql.append(")");
        }
        sql.append(" GROUP BY " + DBAccess.FTRGROUPSFTRS_TABLE_FIELD_GROUP + " ORDER BY val");
        PreparedStatement stmt = dbAccess.getConnection().prepareStatement(sql.toString());
        stmt.setString(1, user);

        //ads the parameters to prepare statement
        if (nameParameter != null) {
            String[] names = nameParameter.split("|");
            for (int i = 0; i < names.length; i++) {
                stmt.setString(2 + i, names[i]);
            }
        }

        ResultSet rs = stmt.executeQuery();
        respBody.append(DBAccess.xmlHeader("/resp_xsl/user_feature_groups.xsl"));
        respBody.append("<result>\n");
        while (rs.next()) {
            String group = rs.getString(1);
            respBody.append("<row>"
                    + "<group>" + group + "</group>"
                    + "</row>\n");
        }
        respBody.append("</result>");
        rs.close();
        stmt.close();
        return true;
    }