//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
WorkbenchAttributeDataMap::pFutureWorkbenchAttributeDataCollection_type
WorkbenchAttributeDataMap::getAll()
{
    pFutureWorkbenchAttributeDataCollection_type pFutureCollection(new FutureWorkbenchAttributeDataCollection_type);
    pWorkbenchAttributeDataCollection_type pCollection(new WorkbenchAttributeDataCollection, &destroyCollection);

    // Start a transaction
    Zen::Database::I_DatabaseConnection::pDatabaseTransaction_type 
        pTransaction = getDatabaseConnection()->beginTransaction();

    // Create a query
    Zen::Database::I_DatabaseTransaction::pStaticQuery_type 
        pQuery = pTransaction->createStaticQuery();

    // Get all of the records from the WorkbenchAttribute.
    pQuery->setQuery("SELECT * FROM WorkbenchAttribute");

    // Create a result handler to handle the execution results
    Zen::Database::I_DatabaseTransaction::pQueryResultHandler_type pResultHandler(new CollectionResultHandler(pTransaction, pFutureCollection, pCollection));

    // Execute the query.  
    pTransaction->executeQuery(pQuery, pResultHandler);    
    
    return pFutureCollection;
}
//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
void
WorkbenchAttributeDataMap::deleteByKey(boost::uint64_t _primaryKeyValue)
{
    // Don't do anything if the key value is 0.  But should this be an error?
    if (_primaryKeyValue == 0)
    {
        // TODO Throw an exception or return an error?
        return;
    }

    // Start a transaction
    Zen::Database::I_DatabaseConnection::pDatabaseTransaction_type 
        pTransaction = getDatabaseConnection()->beginTransaction();

    // Create a query
    Zen::Database::I_DatabaseTransaction::pStaticQuery_type 
        pQuery = pTransaction->createStaticQuery();

	const boost::uint64_t primaryKeyValue(_primaryKeyValue);

    // Delete a record in the WorkbenchAttribute.
    std::stringstream query;
    query << "DELETE FROM WorkbenchAttribute WHERE workBenchAttributeId = " << primaryKeyValue;

    pQuery->setQuery(query.str());

    // Execute the query.  
    pTransaction->executeQuery(pQuery);
}
//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
WorkbenchAttributeDataMap::pFutureWorkbenchAttributeDomainObject_type
WorkbenchAttributeDataMap::getByKey(boost::uint64_t _primaryKeyValue)
{
    // Start a transaction
    Zen::Database::I_DatabaseConnection::pDatabaseTransaction_type 
        pTransaction = getDatabaseConnection()->beginTransaction();

    // Create a query
    Zen::Database::I_DatabaseTransaction::pStaticQuery_type 
        pQuery = pTransaction->createStaticQuery();

	const boost::uint64_t primaryKeyValue(_primaryKeyValue);

    // Get a record from the WorkbenchAttribute.
    std::stringstream query;
    query << "SELECT * FROM WorkbenchAttribute WHERE workBenchAttributeId = " << primaryKeyValue;

    pQuery->setQuery(query.str());
    
	pFutureWorkbenchAttributeDomainObject_type pReturnValue(new FutureWorkbenchAttributeDomainObject_type);
    pWorkbenchAttributeDomainObject_type pValue(new WorkbenchAttributeDomainObject, &destroyObject);

    // Create a result handler to handle the execution results
    Zen::Database::I_DatabaseTransaction::pQueryResultHandler_type pResultHandler(new ResultHandler(pTransaction, pReturnValue, pValue));

    // Execute the query.  
    pTransaction->executeQuery(pQuery, pResultHandler);
    
    return pReturnValue;
}
Ejemplo n.º 4
0
bool BaseRepository::createConnection()
{
    db = getDatabaseConnection();

    if(!db.isOpen()){
       throw std::runtime_error("Failed to open database");
    }
    return true;
}
Ejemplo n.º 5
0
/**
 *
 * Kills the query being executed by the given connection
 *
 * @param uuid the UUID of the connection to kill
 * @return the result of the kill query
 */
QueryResult DatabaseConnection::killQuery(std::string uuid)
{
    DatabaseConnection *connection;

    connection = dynamic_cast<DatabaseConnection *>(
                getDatabaseConnection(uuid));

    return execute(VariantVector() << "KILL QUERY "
                   + Variant(connection->connection_id).toString());
}
Ejemplo n.º 6
0
//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
void
WorkbenchService::loadProjects()
{
    // Get the explorer node data map.
    I_ExplorerNodeDataMap::pExplorerNodeDataMap_type pExplorerNodeDM =
        I_ExplorerNodeDataMap::create(getDatabaseConnection());

    // Loop through all of the projects.
    for(ProjectsToLoad_type::iterator iter = m_projectsToLoad.begin(); iter != m_projectsToLoad.end(); iter++)
    {
        // Get the data node associated with this project
        const boost::int64_t explorerNodeId = (*iter)->getExplorerNodeId();

        I_ExplorerNodeDataMap::pExplorerNodeDomainObject_type
            pExplorerNode = pExplorerNodeDM->getByKey(explorerNodeId)->getValue();

        // Find the correct extension point for this project type and load it

        Plugins::I_ExtensionRegistry::pExtensionPoint_type
            pExtensionPoint = Plugins::I_ExtensionRegistry::getSingleton().getExtensionPoint("Zen::Studio::Workbench", "ExplorerNode");

        if (pExtensionPoint.get() != NULL)
        {
            const std::string extension(pExplorerNode->getNodeType().getStringValue());
            Plugins::I_Extension::extension_ptr_type pExtension = pExtensionPoint->getExtension(extension);

            if (pExtension)
            {
                // TODO Cache this factory / extension?
                I_ExplorerNodeFactory* pFactory = dynamic_cast<I_ExplorerNodeFactory*>(&pExtension->getClassFactory());

                // Create the project.
                pProject_type pProject = pFactory->createProject(*(m_pProjectExplorerController.get()), (*iter), pExplorerNode);

                pProject->setProjectId((*iter)->getProjectId());
                pProject->setName((*iter)->getName());

                m_pProjectExplorerController->loadExistingProject(pProject, pExplorerNode);
            }
        }
    }
}
Ejemplo n.º 7
0
std::string
GroupMemberDataMap::escapeString(const std::string& _value) const
{
	return getDatabaseConnection()->escapeString(_value);
}
Ejemplo n.º 8
0
//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
Zen::Database::I_DatabaseTransaction::pFutureKey_type
GroupMemberDataMap::update(pGroupMemberDomainObject_type _pGroupMemberDomainObject)
{
    // Start a transaction
    Zen::Database::I_DatabaseConnection::pDatabaseTransaction_type 
        pTransaction = getDatabaseConnection()->beginTransaction();

    // Create a query
    Zen::Database::I_DatabaseTransaction::pStaticQuery_type 
        pQuery = pTransaction->createStaticQuery();

    std::stringstream query;

    if (_pGroupMemberDomainObject->getMemberId().isNull())
    {
        // Construct the query to insert a record into the GroupMember table.

        query << "INSERT into GroupMember ( "
            << getNonPKFieldNames() << " ) VALUES ( ";

        // Append all of the values
        std::string escapedStringValue;
        
        escapedStringValue = escapeString(_pGroupMemberDomainObject->getGroupId().getStringValue());
        query << "\'" << escapedStringValue << "\'";
        escapedStringValue = escapeString(_pGroupMemberDomainObject->getAccountId().getStringValue());
        query << ", \'" << escapedStringValue << "\'";

        // Final closing parenthesis
        query << ")";

        pQuery->setQuery(query.str());

        // Execute the query.
        Zen::Database::I_DatabaseTransaction::pFutureKey_type 
            pKey(pTransaction->executeInsert(pQuery));

        _pGroupMemberDomainObject->getMemberId() = pKey->getValue();
        
        // Done, so commit the transaction.
        pTransaction->commit();

        return pKey;
    }
    else
    {
        // Construct the query to update a record into the GroupMember table.

        // Count the number of dirty fields.
        int dirtyFields = 0;

        query << "UPDATE GroupMember SET ";

        std::string separator("");

        // Append all of the field names and values
        std::string escapedStringValue;

        if (_pGroupMemberDomainObject->getGroupId().isDirty())
        {
            escapedStringValue = escapeString(_pGroupMemberDomainObject->getGroupId().getStringValue());
            query << separator << "groupId = \'" 
                << escapedStringValue << "\'";
            separator = ", ";
            dirtyFields++;
        }
        if (_pGroupMemberDomainObject->getAccountId().isDirty())
        {
            escapedStringValue = escapeString(_pGroupMemberDomainObject->getAccountId().getStringValue());
            query << separator << "accountId = \'" 
                << escapedStringValue << "\'";
            separator = ", ";
            dirtyFields++;
        }

        // No need to proceed if none of the fields were dirty.
        if (dirtyFields > 0)
        {
            // WHERE clause to update the record
            query << " WHERE memberId = " << 
                _pGroupMemberDomainObject->getMemberId().getInt64Value();

            pQuery->setQuery(query.str());

            // Execute the query.  
            pTransaction->executeQuery(pQuery);

            // Done, so commit the transaction.
            pTransaction->commit();
        }
        
        Zen::Database::I_DatabaseTransaction::pFutureKey_type 
            pKey(new Zen::Database::I_DatabaseTransaction::FutureKey_type);

        pKey->setValue(_pGroupMemberDomainObject->getMemberId().getInt64Value());

        return pKey;
    }

}
Ejemplo n.º 9
0
std::string
SpreadSheetRowDataMap::escapeString(const std::string& _value) const
{
	return getDatabaseConnection()->escapeString(_value);
}
Ejemplo n.º 10
0
std::string
ChatChannelDataMap::escapeString(const std::string& _value) const
{
	return getDatabaseConnection()->escapeString(_value);
}
Ejemplo n.º 11
0
std::string
PropertiesDataMap::escapeString(const std::string& _value) const
{
	return getDatabaseConnection()->escapeString(_value);
}
Ejemplo n.º 12
0
std::string
ExplorerNodeDataMap::escapeString(const std::string& _value) const
{
	return getDatabaseConnection()->escapeString(_value);
}
Ejemplo n.º 13
0
std::string
WorkbenchAttributeDataMap::escapeString(const std::string& _value) const
{
	return getDatabaseConnection()->escapeString(_value);
}