void dfs(vector<int>& nums, vector<int> record, int start) { res.push_back(record); for(int i = start; i < nums.size(); i++) { vector<int> record2(record); record2.push_back(nums[i]); dfs(nums, record2, i + 1); } }
QSqlRecord SqliteDriver::record(const QString &tablename) const { QSqlRecord fil; if (!isOpen() || !dataBase_) return fil; QDomDocument doc(tablename); QDomElement docElem; QString stream = db_->managerModules()->contentCached(tablename + ".mtd"); if (!FLUtil::domDocumentSetContent(doc, stream)) { #ifdef FL_DEBUG qWarning("FLManager : " + QApplication::tr("Error al cargar los metadatos para la tabla %1").arg(tablename)); #endif return record2(tablename); } docElem = doc.documentElement(); FLTableMetaData *mtd = db_->manager()->metadata(&docElem, true); if (!mtd) return record2(tablename); FLTableMetaData::FLFieldMetaDataList *fl = mtd->fieldList(); if (!fl) { delete mtd; return record2(tablename); } if (fl->isEmpty()) { delete mtd; return record2(tablename); } QStringList fieldsNames = QStringList::split(",", mtd->fieldsNames()); for (QStringList::Iterator it = fieldsNames.begin(); it != fieldsNames.end(); ++it) fil.append(QSqlField((*it), FLFieldMetaData::flDecodeType(mtd->fieldType((*it))))); delete mtd; return fil; }