本文整理汇总了C++中Relation::getAttributeNames方法的典型用法代码示例。如果您正苦于以下问题:C++ Relation::getAttributeNames方法的具体用法?C++ Relation::getAttributeNames怎么用?C++ Relation::getAttributeNames使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Relation
的用法示例。
在下文中一共展示了Relation::getAttributeNames方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update
// Updates all of the entries in a relation that meet the specified condition
Relation* Database::update( string relationName, vector<string> attributeNames,
vector<Entry> newVals, vector<Condition> conditions ) {
Relation* targetRelation = findRelation( relationName );
vector<string> targetAttNames = targetRelation->getAttributeNames( );
vector<int> targetIndeces;
for ( unsigned i = 0; i < attributeNames.size( ); i++ ){
for ( unsigned j = 0; j < targetAttNames.size( ); j++ ){
if ( attributeNames.at( i ) == targetAttNames.at( j ) ){
targetIndeces.push_back( j );
}
}
}
ConditionList cl = ConditionList( conditions, targetRelation );
for ( int i = 0; i < targetRelation->getNumTuples( ); i++ ){
if ( cl.evalOnTuple( i ) ){
vector<Entry*> targetRow = targetRelation->getRow( i );
for ( unsigned j = 0; j < targetIndeces.size( ); j++ ){
delete targetRow.at( targetIndeces.at( j ) );
targetRow.at( targetIndeces.at( j ) ) = new Entry( newVals.at( j ) );
}
targetRelation->updateRow( targetRow, i );
}
}
return targetRelation;
}