コード例 #1
0
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;
}
コード例 #2
0
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);
}