ResultEntry DataStore::findResultForIdWithExportdData(int id) { const char *q = sqlite3_mprintf("select id, model_name, subject_name, notes, date, value, exported_data, exported_message, statistics from result where id = '%d'", id); sqlite3_stmt *stmt = query(q); int rc; while((rc = sqlite3_step(stmt)) != SQLITE_DONE) { switch(rc) { case SQLITE_ROW: int id = sqlite3_column_int(stmt, 0); std::string modelName(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 1))); std::string subjectName(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 2))); std::string notes(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 3))); std::string date(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 4))); double value = sqlite3_column_double(stmt, 5); std::string exportedData(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 6))); std::string exportedMessage(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 7))); std::string statistics(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 8))); ResultEntry entry = ResultEntry(id, modelName, subjectName, notes, date, value, exportedData, exportedMessage, statistics); sqlite3_free((void *) q); sqlite3_finalize(stmt); return entry; } } throw std::runtime_error("No result for given id"); }
std::vector<ResultEntry> DataStore::findResultsForModelName(std::string modelName) { std::vector<ResultEntry> entries; const char *q = sqlite3_mprintf("select id, model_name, subject_name, notes, date, value, statistics from result where model_name = '%q'", modelName.c_str()); sqlite3_stmt *stmt = query(q); int rc; while((rc = sqlite3_step(stmt)) != SQLITE_DONE) { switch(rc) { case SQLITE_ROW: int id = sqlite3_column_int(stmt, 0); std::string modelName(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 1))); std::string subjectName(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 2))); std::string notes(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 3))); std::string date(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 4))); double value = sqlite3_column_double(stmt, 5); std::string statistics(reinterpret_cast<char const*>(sqlite3_column_text(stmt, 6))); entries.push_back(ResultEntry(id, modelName, subjectName, notes, date, value, "", "", statistics)); break; } } sqlite3_free((void *) q); sqlite3_finalize(stmt); return entries; }
void QgsVBSCatalogProvider::replyFinished() { QNetworkReply* reply = qobject_cast<QNetworkReply*>( QObject::sender() ); if ( reply->error() == QNetworkReply::NoError ) { #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) QJson::Parser parser; QVariantMap listData = parser.parse( reply->readAll() ).toMap(); #else QVariantMap listData = QJsonDocument::fromJson( reply->readAll() ).object().toVariantMap(); #endif QMap<QString, EntryMap> wmtsLayers; QMap<QString, EntryMap> wmsLayers; QMap<QString, EntryMap> amsLayers; foreach ( const QVariant& resultData, listData["results"].toList() ) { QVariantMap resultMap = resultData.toMap(); if ( resultMap["type"].toString() == "wmts" ) { wmtsLayers[resultMap["serviceUrl"].toString()].insert( resultMap["layerName"].toString(), ResultEntry( resultMap["category"].toString(), resultMap["title"].toString(), resultMap["position"].toString(), resultMap["metadataUrl"].toString() ) ); } else if ( resultMap["type"].toString() == "wms" ) { wmsLayers[resultMap["serviceUrl"].toString()].insert( resultMap["layerName"].toString(), ResultEntry( resultMap["category"].toString(), resultMap["title"].toString(), resultMap["position"].toString(), resultMap["metadataUrl"].toString() ) ); } else if ( resultMap["type"].toString() == "ams" ) { amsLayers[resultMap["serviceUrl"].toString()].insert( resultMap["layerName"].toString(), ResultEntry( resultMap["category"].toString(), resultMap["title"].toString(), resultMap["position"].toString(), resultMap["metadataUrl"].toString() ) ); } } foreach ( const QString& wmtsUrl, wmtsLayers.keys() ) { readWMTSCapabilities( wmtsUrl, wmtsLayers[wmtsUrl] ); } foreach ( const QString& wmsUrl, wmsLayers.keys() ) { readWMSCapabilities( wmsUrl, wmsLayers[wmsUrl] ); } foreach ( const QString& amsUrl, amsLayers.keys() ) { readAMSCapabilities( amsUrl, amsLayers[amsUrl] ); } }