bool P2pMachine::store() { if(validate() == false) return false; try { shared_ptr<IDbConnection> connection = Engine::instance()->createSystemConnection(); DbSqlValues values; values.set(_S("id"), m_id.toHex()); values.set(_S("public_key"), m_publicKey); shared_ptr<IDbStatement> statement = connection->_prepare(connection->prepare_insert(_S("os_machines"), values)); for(DbSqlValues::iterator i = values.begin(); i != values.end(); i++) { statement->addParameter()->setValue(i->second); } statement->execute(); return true; } catch(std::exception &e) { OS_LOG_ERROR(e.what()); } return false; }
bool IExtensionsExtension::registerExtension(shared_ptr<Portal> portal, shared_ptr<IPortalDatabase> db, const Version &version) { OS_ASSERT(portal != nullptr); //shared_ptr<IPortalDatabase> db = portal->getDatabase(); OS_EXCEPT_IF(db == nullptr, "Invalid database"); DbSqlValues values; values.set(DBTABLES::EXTENSIONS::ID, getID().toUTF16()); values.set(DBTABLES::EXTENSIONS::VERSION, static_cast<String>(version.toString())); String sql = db->getConnection()->prepare_insert(DBTABLES::EXTENSIONS_TABLE, values); return db->getConnection()->executeStatement(sql, values); }