#include <OraDatabaseSchema.h>
Public Member Functions | |
bool | containerForMappingVersion (const std::string &mappingVersion, int &destination) |
bool | getClassVersionListForContainer (int containerId, std::map< std::string, std::string > &versionMap) |
bool | getClassVersionListForMappingVersion (const std::string &mappingVersion, std::set< std::string > &destination) |
bool | getContainerTableMap (std::map< std::string, int > &destination) |
bool | getDependentClassesInContainerMapping (int containerId, std::set< std::string > &destination) |
bool | getMapping (const std::string &version, MappingRawData &destination) |
bool | getMappingVersionListForContainer (int containerId, std::set< std::string > &destination, bool onlyDependency=false) |
bool | getMappingVersionListForTable (const std::string &tableName, std::set< std::string > &destination) |
bool | getVersionList (std::set< std::string > &destination) |
void | insertClassVersion (const std::string &className, const std::string &classVersion, const std::string &classId, int dependencyIndex, int containerId, const std::string &mappingVersion) |
OraMappingSchema (coral::ISchema &dbSchema) | |
void | removeMapping (const std::string &version) |
bool | selectMappingVersion (const std::string &classId, int containerId, std::string &destination) |
void | setMappingVersion (const std::string &classId, int containerId, const std::string &mappingVersion) |
void | storeMapping (const MappingRawData &mapping) |
virtual | ~OraMappingSchema () |
Private Attributes | |
coral::ISchema & | m_schema |
Definition at line 133 of file OraDatabaseSchema.h.
ora::OraMappingSchema::OraMappingSchema | ( | coral::ISchema & | dbSchema | ) | [explicit] |
Definition at line 684 of file OraDatabaseSchema.cc.
: m_schema( dbSchema ){ }
ora::OraMappingSchema::~OraMappingSchema | ( | ) | [virtual] |
Definition at line 688 of file OraDatabaseSchema.cc.
{ }
bool ora::OraMappingSchema::containerForMappingVersion | ( | const std::string & | mappingVersion, |
int & | destination | ||
) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 997 of file OraDatabaseSchema.cc.
References ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().
{ bool ret = false; std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() ); query->addToOutputList( OraClassVersionTable::containerIdColumn() ); std::ostringstream condition; condition << OraClassVersionTable::mappingVersionColumn() << " =:"<< OraClassVersionTable::mappingVersionColumn(); coral::AttributeList condData; condData.extend<std::string>( OraClassVersionTable::mappingVersionColumn() ); coral::AttributeList::iterator iAttribute = condData.begin(); iAttribute->data< std::string >() = mappingVersion; query->setCondition( condition.str(), condData ); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); destination = currentRow[ OraClassVersionTable::containerIdColumn() ].data<int>(); } return ret; }
bool ora::OraMappingSchema::getClassVersionListForContainer | ( | int | containerId, |
std::map< std::string, std::string > & | versionMap | ||
) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 922 of file OraDatabaseSchema.cc.
References ora::OraClassVersionTable::classVersionColumn(), ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().
{ bool ret = false; std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() ); query->setDistinct(); query->addToOutputList( OraClassVersionTable::classVersionColumn() ); query->addToOutputList( OraClassVersionTable::mappingVersionColumn() ); std::ostringstream condition; condition <<OraClassVersionTable::containerIdColumn()<<" =:"<<OraClassVersionTable::containerIdColumn(); coral::AttributeList condData; condData.extend< int >( OraClassVersionTable::containerIdColumn() ); condData[ OraClassVersionTable::containerIdColumn() ].data< int >() = containerId; query->setCondition(condition.str(),condData); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); std::string classVersion = currentRow[ OraClassVersionTable::classVersionColumn() ].data<std::string>(); std::string mappingVersion = currentRow[ OraClassVersionTable::mappingVersionColumn() ].data<std::string>(); versionMap.insert( std::make_pair(classVersion,mappingVersion ) ); } return ret; }
bool ora::OraMappingSchema::getClassVersionListForMappingVersion | ( | const std::string & | mappingVersion, |
std::set< std::string > & | destination | ||
) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 873 of file OraDatabaseSchema.cc.
References ora::OraClassVersionTable::classVersionColumn(), ora::OraClassVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().
{ bool ret = false; std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() ); query->setDistinct(); query->addToOutputList( OraClassVersionTable::classVersionColumn() ); std::ostringstream condition; condition <<OraClassVersionTable::mappingVersionColumn()<<" =:"<<OraClassVersionTable::mappingVersionColumn(); coral::AttributeList condData; condData.extend< std::string >( OraClassVersionTable::mappingVersionColumn() ); condData[ OraClassVersionTable::mappingVersionColumn() ].data< std::string >() = mappingVersion; query->setCondition(condition.str(),condData); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); std::string classVersion = currentRow[ OraClassVersionTable::classVersionColumn() ].data<std::string>(); destination.insert( classVersion ); } return ret; }
bool ora::OraMappingSchema::getContainerTableMap | ( | std::map< std::string, int > & | destination | ) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 802 of file OraDatabaseSchema.cc.
References ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::mappingVersionColumn(), ora::OraMappingElementTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, ora::OraClassVersionTable::tableName(), ora::OraMappingElementTable::tableName(), and ora::OraMappingElementTable::tableNameColumn().
{ bool ret = false; std::auto_ptr<coral::IQuery> query(m_schema.newQuery()); query->addToTableList( OraMappingElementTable::tableName(),"T0"); query->addToTableList( OraClassVersionTable::tableName(), "T1"); query->setDistinct(); query->addToOutputList( "T0."+ OraMappingElementTable::tableNameColumn() ); query->addToOutputList( "T1."+ OraClassVersionTable::containerIdColumn()); std::ostringstream condition; condition << "T0."<<OraMappingElementTable::mappingVersionColumn()<<"="<< "T1."<< OraClassVersionTable::mappingVersionColumn(); coral::AttributeList condData; query->setCondition(condition.str(),condData); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); std::string tableName = currentRow[ "T0."+ OraMappingElementTable::tableNameColumn()].data<std::string>(); int containerId = currentRow[ "T1."+ OraClassVersionTable::containerIdColumn()].data<int>(); dest.insert(std::make_pair(tableName,containerId)); } return ret; }
bool ora::OraMappingSchema::getDependentClassesInContainerMapping | ( | int | containerId, |
std::set< std::string > & | destination | ||
) | [virtual] |
bool ora::OraMappingSchema::getTableListForContainer( int containerId, std::set<std::string>& dest ){ bool ret = false; std::auto_ptr<coral::IQuery> query(m_schema.newQuery()); query->addToTableList( OraMappingElementTable::tableName(),"T0"); query->addToTableList( OraMappingVersionTable::tableName(), "T1"); query->setDistinct(); query->addToOutputList( "T0."+ OraMappingElementTable::tableNameColumn() ); std::ostringstream condition; condition << "T0."<<OraMappingElementTable::mappingVersionColumn()<<"="<< "T1."<< OraMappingVersionTable::mappingVersionColumn() << " AND "; condition << "T1."<<OraMappingVersionTable::containerIdColumn()<<" =:"<<OraMappingVersionTable::containerIdColumn(); coral::AttributeList condData; condData.extend< int >( OraMappingVersionTable::containerIdColumn() ); condData.begin()->data< int >() = containerId; query->setCondition(condition.str(),condData); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); std::string tableName = currentRow[ "T0."+ OraMappingElementTable::tableNameColumn()].data<std::string>(); dest.insert( tableName ); } return ret; }
Implements ora::IMappingSchema.
Definition at line 850 of file OraDatabaseSchema.cc.
References className(), ora::OraClassVersionTable::classNameColumn(), ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::dependencyIndexColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().
{ bool ret = false; std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() ); query->setDistinct(); query->addToOutputList( OraClassVersionTable::classNameColumn() ); std::ostringstream condition; condition <<OraClassVersionTable::containerIdColumn()<<" =:"<<OraClassVersionTable::containerIdColumn(); condition << " AND "<< OraClassVersionTable::dependencyIndexColumn()<<" > 0"; coral::AttributeList condData; condData.extend< int >( OraClassVersionTable::containerIdColumn() ); condData[ OraClassVersionTable::containerIdColumn() ].data< int >() = containerId; query->setCondition(condition.str(),condData); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); std::string className = currentRow[ OraClassVersionTable::classNameColumn() ].data<std::string>(); destination.insert( className ); } return ret; }
bool ora::OraMappingSchema::getMapping | ( | const std::string & | version, |
ora::MappingRawData & | dest | ||
) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 705 of file OraDatabaseSchema.cc.
References ora::MappingRawData::addElement(), ora::OraMappingElementTable::columnNameColumn(), python::HTMLExport::elem(), ora::OraMappingElementTable::elementIdColumn(), ora::MappingRawElement::elementType, ora::OraMappingElementTable::elementTypeColumn(), ora::OraMappingElementTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, ora::OraMappingElementTable::scopeNameColumn(), ora::OraMappingElementTable::tableName(), ora::OraMappingElementTable::tableNameColumn(), ora::OraMappingElementTable::variableNameColumn(), ora::OraMappingElementTable::variableParIndexColumn(), and ora::OraMappingElementTable::variableTypeColumn().
{ bool ret = false; coral::ITable& mappingTable = m_schema.tableHandle( OraMappingElementTable::tableName() ); std::auto_ptr<coral::IQuery> query(mappingTable.newQuery()); coral::AttributeList outputBuffer; outputBuffer.extend<int>( OraMappingElementTable::elementIdColumn() ); outputBuffer.extend<std::string>( OraMappingElementTable::elementTypeColumn() ); outputBuffer.extend<std::string>( OraMappingElementTable::scopeNameColumn() ); outputBuffer.extend<std::string>( OraMappingElementTable::variableNameColumn() ); outputBuffer.extend<std::string>( OraMappingElementTable::variableTypeColumn() ); outputBuffer.extend<std::string>( OraMappingElementTable::tableNameColumn() ); outputBuffer.extend<std::string>( OraMappingElementTable::columnNameColumn() ); query->defineOutput( outputBuffer ); query->addToOutputList( OraMappingElementTable::elementIdColumn() ); query->addToOutputList( OraMappingElementTable::elementTypeColumn() ); query->addToOutputList( OraMappingElementTable::scopeNameColumn() ); query->addToOutputList( OraMappingElementTable::variableNameColumn() ); query->addToOutputList( OraMappingElementTable::variableTypeColumn() ); query->addToOutputList( OraMappingElementTable::tableNameColumn() ); query->addToOutputList( OraMappingElementTable::columnNameColumn() ); std::ostringstream condition; condition << OraMappingElementTable::mappingVersionColumn()<<"= :"<< OraMappingElementTable::mappingVersionColumn(); coral::AttributeList condData; condData.extend<std::string>( OraMappingElementTable::mappingVersionColumn() ); coral::AttributeList::iterator iAttribute = condData.begin(); iAttribute->data< std::string >() = version; query->setCondition( condition.str(), condData ); query->addToOrderList( OraMappingElementTable::scopeNameColumn() ); query->addToOrderList( OraMappingElementTable::variableNameColumn() ); query->addToOrderList( OraMappingElementTable::variableParIndexColumn() ); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); int elementId = currentRow[ OraMappingElementTable::elementIdColumn() ].data<int>(); MappingRawElement& elem = dest.addElement( elementId ); elem.elementType = currentRow[ OraMappingElementTable::elementTypeColumn() ].data<std::string>(); elem.scopeName = currentRow[ OraMappingElementTable::scopeNameColumn() ].data<std::string>(); elem.variableName = currentRow[ OraMappingElementTable::variableNameColumn() ].data<std::string>(); elem.variableType = currentRow[ OraMappingElementTable::variableTypeColumn() ].data<std::string>(); elem.tableName = currentRow[ OraMappingElementTable::tableNameColumn() ].data<std::string>(); elem.columns.push_back( currentRow[ OraMappingElementTable::columnNameColumn() ].data<std::string>() ); } return ret; }
bool ora::OraMappingSchema::getMappingVersionListForContainer | ( | int | containerId, |
std::set< std::string > & | destination, | ||
bool | onlyDependency = false |
||
) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 896 of file OraDatabaseSchema.cc.
References ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::dependencyIndexColumn(), ora::OraClassVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().
{ bool ret = false; std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() ); query->setDistinct(); query->addToOutputList( OraClassVersionTable::mappingVersionColumn() ); std::ostringstream condition; condition <<OraClassVersionTable::containerIdColumn()<<" =:"<<OraClassVersionTable::containerIdColumn(); coral::AttributeList condData; condData.extend< int >( OraClassVersionTable::containerIdColumn() ); if( onlyDependency ){ condition << " AND "<<OraClassVersionTable::dependencyIndexColumn()<<" > 0"; } condData[ OraClassVersionTable::containerIdColumn() ].data< int >() = containerId; query->setCondition(condition.str(),condData); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); std::string mappingVersion = currentRow[ OraClassVersionTable::mappingVersionColumn() ].data<std::string>(); dest.insert( mappingVersion ); } return ret; }
bool ora::OraMappingSchema::getMappingVersionListForTable | ( | const std::string & | tableName, |
std::set< std::string > & | destination | ||
) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 946 of file OraDatabaseSchema.cc.
References ora::OraMappingElementTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, ora::OraMappingElementTable::tableName(), and ora::OraMappingElementTable::tableNameColumn().
{ bool ret = false; destination.clear(); std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraMappingElementTable::tableName() ).newQuery() ); query->setDistinct(); query->addToOutputList( OraMappingElementTable::mappingVersionColumn() ); std::ostringstream condition; condition << OraMappingElementTable::tableNameColumn()<<" = :"<< OraMappingElementTable::tableNameColumn(); coral::AttributeList condData; condData.extend< std::string >( OraMappingElementTable::tableNameColumn() ); condData.begin()->data<std::string>() = tableName; query->setCondition(condition.str(),condData); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); std::string mappingVersion = currentRow[ OraMappingElementTable::mappingVersionColumn()].data<std::string>(); destination.insert( mappingVersion ); } return ret; }
bool ora::OraMappingSchema::getVersionList | ( | std::set< std::string > & | destination | ) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 691 of file OraDatabaseSchema.cc.
References ora::OraMappingVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraMappingVersionTable::tableName().
{ bool ret = false; std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraMappingVersionTable::tableName() ).newQuery() ); query->addToOutputList( OraMappingVersionTable::mappingVersionColumn() ); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); std::string mappingVersion = currentRow[ OraMappingVersionTable::mappingVersionColumn()].data<std::string>(); dest.insert( mappingVersion ); } return ret; }
void ora::OraMappingSchema::insertClassVersion | ( | const std::string & | className, |
const std::string & | classVersion, | ||
const std::string & | classId, | ||
int | dependencyIndex, | ||
int | containerId, | ||
const std::string & | mappingVersion | ||
) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 1018 of file OraDatabaseSchema.cc.
References ora::OraClassVersionTable::classIdColumn(), ora::OraClassVersionTable::classNameColumn(), ora::OraClassVersionTable::classVersionColumn(), ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::dependencyIndexColumn(), idDealer::inputData, ora::OraClassVersionTable::mappingVersionColumn(), and ora::OraClassVersionTable::tableName().
{ coral::ITable& classVersionTable = m_schema.tableHandle( OraClassVersionTable::tableName() ); coral::AttributeList inputData; inputData.extend<std::string>( OraClassVersionTable::mappingVersionColumn()); inputData.extend<std::string>( OraClassVersionTable::classNameColumn()); inputData.extend<std::string>( OraClassVersionTable::classVersionColumn()); inputData.extend<std::string>( OraClassVersionTable::classIdColumn()); inputData.extend<int>( OraClassVersionTable::dependencyIndexColumn()); inputData.extend<int>( OraClassVersionTable::containerIdColumn()); coral::AttributeList::iterator iInAttr = inputData.begin(); iInAttr->data< std::string >() = mappingVersion; ++iInAttr; iInAttr->data< std::string >() = className; ++iInAttr; iInAttr->data< std::string >() = classVersion; ++iInAttr; iInAttr->data< std::string >() = classId; ++iInAttr; iInAttr->data< int >() = dependencyIndex; ++iInAttr; iInAttr->data< int >() = containerId; classVersionTable.dataEditor().insertRow( inputData ); }
void ora::OraMappingSchema::removeMapping | ( | const std::string & | version | ) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 790 of file OraDatabaseSchema.cc.
References ora::OraMappingVersionTable::mappingVersionColumn(), ora::OraClassVersionTable::tableName(), ora::OraMappingVersionTable::tableName(), and ora::OraMappingElementTable::tableName().
{ // Remove all rows in the tables with the version. coral::AttributeList whereData; whereData.extend<std::string>( OraMappingVersionTable::mappingVersionColumn() ); whereData.begin()->data<std::string>() = version; std::string condition = OraMappingVersionTable::mappingVersionColumn() + " = :" + OraMappingVersionTable::mappingVersionColumn(); m_schema.tableHandle( OraClassVersionTable::tableName() ).dataEditor().deleteRows( condition, whereData ); m_schema.tableHandle( OraMappingElementTable::tableName() ).dataEditor().deleteRows( condition, whereData ); m_schema.tableHandle( OraMappingVersionTable::tableName() ).dataEditor().deleteRows( condition, whereData ); }
bool ora::OraMappingSchema::selectMappingVersion | ( | const std::string & | classId, |
int | containerId, | ||
std::string & | destination | ||
) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 970 of file OraDatabaseSchema.cc.
References ora::OraClassVersionTable::classIdColumn(), ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().
{ bool ret = false; destination.clear(); std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() ); query->addToOutputList( OraClassVersionTable::mappingVersionColumn() ); std::ostringstream condition; condition << OraClassVersionTable::classIdColumn() << " =:" << OraClassVersionTable::classIdColumn() << " AND "; condition << OraClassVersionTable::containerIdColumn() << " =:" << OraClassVersionTable::containerIdColumn(); coral::AttributeList condData; condData.extend<std::string>( OraClassVersionTable::classIdColumn() ); condData.extend<int>( OraClassVersionTable::containerIdColumn() ); coral::AttributeList::iterator iAttribute = condData.begin(); iAttribute->data< std::string >() = classId; ++iAttribute; iAttribute->data< int >() = containerId; query->setCondition( condition.str(), condData ); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); destination = currentRow[OraClassVersionTable::mappingVersionColumn()].data<std::string>(); } return ret; }
void ora::OraMappingSchema::setMappingVersion | ( | const std::string & | classId, |
int | containerId, | ||
const std::string & | mappingVersion | ||
) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 1047 of file OraDatabaseSchema.cc.
References ora::OraClassVersionTable::classIdColumn(), ora::OraClassVersionTable::containerIdColumn(), idDealer::inputData, ora::OraClassVersionTable::mappingVersionColumn(), and ora::OraClassVersionTable::tableName().
{ coral::ITable& classVersionTable = m_schema.tableHandle( OraClassVersionTable::tableName() ); coral::AttributeList inputData; inputData.extend<std::string>( OraClassVersionTable::mappingVersionColumn()); inputData.extend<std::string>( OraClassVersionTable::classIdColumn()); inputData.extend<int>( OraClassVersionTable::containerIdColumn()); coral::AttributeList::iterator iInAttr = inputData.begin(); iInAttr->data< std::string >() = mappingVersion; ++iInAttr; iInAttr->data< std::string >() = classId; ++iInAttr; iInAttr->data< int >() = containerId; std::string setClause = OraClassVersionTable::mappingVersionColumn()+" =:"+ OraClassVersionTable::mappingVersionColumn(); std::string whereClause = OraClassVersionTable::classIdColumn()+" =:"+ OraClassVersionTable::classIdColumn()+" AND "+ OraClassVersionTable::containerIdColumn()+" =:"+ OraClassVersionTable::containerIdColumn(); classVersionTable.dataEditor().updateRows( setClause,whereClause, inputData ); }
void ora::OraMappingSchema::storeMapping | ( | const MappingRawData & | mapping | ) | [virtual] |
Implements ora::IMappingSchema.
Definition at line 752 of file OraDatabaseSchema.cc.
References ora::OraMappingElementTable::columnNameColumn(), ora::OraMappingElementTable::elementIdColumn(), ora::MappingRawData::elements, ora::OraMappingElementTable::elementTypeColumn(), ora::OraMappingVersionTable::mappingVersionColumn(), ora::OraMappingElementTable::mappingVersionColumn(), ora::OraMappingElementTable::scopeNameColumn(), ora::OraMappingVersionTable::tableName(), ora::OraMappingElementTable::tableName(), ora::OraMappingElementTable::tableNameColumn(), ora::OraMappingElementTable::variableNameColumn(), ora::OraMappingElementTable::variableParIndexColumn(), ora::OraMappingElementTable::variableTypeColumn(), and ora::MappingRawData::version.
{ // first update the version table coral::ITable& mappingVersionTable = m_schema.tableHandle( OraMappingVersionTable::tableName() ); coral::AttributeList rowBuffer; rowBuffer.extend< std::string >( OraMappingVersionTable::mappingVersionColumn() ); rowBuffer[ OraMappingVersionTable::mappingVersionColumn() ].data<std::string>()= mapping.version; mappingVersionTable.dataEditor().insertRow( rowBuffer ); // then update the element tables coral::ITable& mappingElementTable = m_schema.tableHandle( OraMappingElementTable::tableName() ); coral::AttributeList dataBuffer; dataBuffer.extend< std::string >( OraMappingElementTable::mappingVersionColumn() ); dataBuffer.extend< int >( OraMappingElementTable::elementIdColumn() ); dataBuffer.extend< std::string >( OraMappingElementTable::elementTypeColumn() ); dataBuffer.extend< std::string >( OraMappingElementTable::scopeNameColumn() ); dataBuffer.extend< std::string >( OraMappingElementTable::variableNameColumn() ); dataBuffer.extend< unsigned int >( OraMappingElementTable::variableParIndexColumn() ); dataBuffer.extend< std::string >( OraMappingElementTable::variableTypeColumn() ); dataBuffer.extend< std::string >( OraMappingElementTable::tableNameColumn() ); dataBuffer.extend< std::string >( OraMappingElementTable::columnNameColumn() ); dataBuffer[ OraMappingElementTable::mappingVersionColumn() ].data<std::string>()= mapping.version; for( std::map < int, MappingRawElement >::const_iterator iElem = mapping.elements.begin(); iElem != mapping.elements.end(); iElem++ ){ for( size_t iParamIndex = 0; iParamIndex < iElem->second.columns.size(); iParamIndex++ ){ dataBuffer[ OraMappingElementTable::elementIdColumn() ].data<int>() = iElem->first; dataBuffer[ OraMappingElementTable::elementTypeColumn()].data<std::string>()= iElem->second.elementType; dataBuffer[ OraMappingElementTable::scopeNameColumn() ].data<std::string>()= iElem->second.scopeName; dataBuffer[ OraMappingElementTable::variableNameColumn() ].data<std::string>()= iElem->second.variableName; dataBuffer[ OraMappingElementTable::variableParIndexColumn() ].data<unsigned int>() = iParamIndex; dataBuffer[ OraMappingElementTable::variableTypeColumn() ].data<std::string>()= iElem->second.variableType; dataBuffer[ OraMappingElementTable::tableNameColumn() ].data<std::string>()= iElem->second.tableName; dataBuffer[ OraMappingElementTable::columnNameColumn() ].data<std::string>()= iElem->second.columns[iParamIndex]; mappingElementTable.dataEditor().insertRow( dataBuffer ); } } }
coral::ISchema& ora::OraMappingSchema::m_schema [private] |
Definition at line 154 of file OraDatabaseSchema.h.