//template <typename LTYPE> void pDB::list_query(pStringRef query, RowList &result) const { sqlite3_stmt *stmt; if (trace_) { std::cerr << "TRACE: " << query.str() << "\n"; } int rc = sqlite3_prepare_v2(db_, query.str().c_str(), -1, &stmt, NULL); if (rc != SQLITE_OK) { std::cerr << "sqlite error: " << query.str() << "\n"; std::cerr << sqlite3_errmsg(db_) << "\n"; exit(1); } while ((rc = sqlite3_step(stmt)) == SQLITE_ROW) { //typename LTYPE::value_type f; RowList::value_type f; for (int i = 0; i < sqlite3_column_count(stmt); i++) { pStringRef key = sqlite3_column_name(stmt, i); pStringRef val; char *cVal = (char*)sqlite3_column_text(stmt, i); if (cVal) val = cVal; f.set(key, val); } result.push_back(f); } if (trace_) { std::cerr << "TRACE: " << result.size() << " rows returned\n"; } sqlite3_finalize(stmt); }
void ml::GetRowList(RowList & l, Matrix & Features, const std::vector<double> & Labels) { l.clear(); if (Features.rows() != Labels.size()) { throw ArgumentException("Labels don't match Features given."); } for (int i = 0; i < Features.rows(); i++) { l.push_back(make_pair(&Features[i], Labels[i])); } }