本文整理汇总了C++中FieldList类的典型用法代码示例。如果您正苦于以下问题:C++ FieldList类的具体用法?C++ FieldList怎么用?C++ FieldList使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了FieldList类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Cmp
int Cmp( const Row & r1, const Row & r2, const FieldList & fl ) {
if ( r1.Size() <= r2.Size() ) {
for ( unsigned int i = 0; i < r1.Size() ; i++ ) {
if ( fl.Size() == 0 || fl.Contains( i ) ) {
if ( r1.At( i ) < r2.At(i) ) {
return -1;
}
else if ( r1.At( i ) > r2.At(i) ) {
return 1;
}
}
}
return r1.Size() < r2.Size() ? -1 : 0;
}
else {
for ( unsigned int i = 0; i < r2.Size() ; i++ ) {
if ( fl.Size() == 0 || fl.Contains( i ) ) {
if ( r1.At( i ) < r2.At(i) ) {
return -1;
}
else if ( r1.At( i ) > r2.At(i) ) {
return 1;
}
}
}
return 1;
}
}
示例2: get_field
virtual bool get_field(doid_t do_id, const Field* field, vector<uint8_t> &value)
{
// Get class from the objects table
const Class* dcc = get_class(do_id);
if(!dcc) {
return false; // Object does not exist
}
bool stored = is_storable(dcc->get_id());
if(!stored) {
return false; // Class has no database fields
}
FieldList fields;
fields.push_back(field);
FieldValues values;
get_fields_from_table(do_id, dcc, fields, values);
auto val_it = values.find(field);
if(val_it == values.end()) {
return false;
}
value = val_it->second;
return true;
}
示例3: tableFields
FieldList Database::tableFields(const QString & table, const QString & schema)
{
FieldList fields;
QString sql(QString("PRAGMA \"%1\".TABLE_INFO(\"%2\");").arg(schema).arg(table));
QSqlQuery query(sql, QSqlDatabase::database(SESSION_NAME));
if (query.lastError().isValid())
{
//exception(tr("Error while getting the fileds of %1: %2.").arg(table).arg(query.lastError().text()));
return fields;
}
while (query.next())
{
DatabaseTableField field;
field.cid = query.value(0).toInt();
field.name = query.value(1).toString();
field.type = query.value(2).toString();
if (field.type.isNull() || field.type.isEmpty())
field.type = "NULL";
field.notnull = query.value(3).toBool();
field.defval = query.value(4).toString();
field.pk = query.value(5).toBool();
field.comment = "";
fields.append(field);
}
return fields;
}
示例4: replaceRegSets
void Architecture::replaceRegSets(FieldList& fl) {
for (size_t i = 0; i < fl.size(); ++i) {
auto name = currentArch->regSymbolMap.find(fl.getField(i));
if (name != currentArch->regSymbolMap.end()) {
fl.setField(i, name->second);
}
}
}
示例5: main
int main( int argc, char* argv[] )
{
try
{
Map configMap;
createProgrammaticConfig( configMap );
OmmProvider provider( OmmNiProviderConfig().config( configMap ).username( "user" ) );
UInt64 ibmHandle = 5;
UInt64 triHandle = 6;
RefreshMsg refresh;
UpdateMsg update;
FieldList fieldList;
provider.submit( refresh.serviceName( "NI_PUB" ).name( "IBM.N" )
.state( OmmState::OpenEnum, OmmState::OkEnum, OmmState::NoneEnum, "UnSolicited Refresh Completed" )
.payload( fieldList
.addReal( 22, 14400, OmmReal::ExponentNeg2Enum )
.addReal( 25, 14700, OmmReal::ExponentNeg2Enum )
.addReal( 30, 9, OmmReal::Exponent0Enum )
.addReal( 31, 19, OmmReal::Exponent0Enum )
.complete() )
.complete(), ibmHandle );
provider.submit( refresh.clear().serviceName( "NI_PUB" ).name( "TRI.N" )
.state( OmmState::OpenEnum, OmmState::OkEnum, OmmState::NoneEnum, "UnSolicited Refresh Completed" )
.payload( fieldList.clear()
.addReal( 22, 4100, OmmReal::ExponentNeg2Enum )
.addReal( 25, 4200, OmmReal::ExponentNeg2Enum )
.addReal( 30, 20, OmmReal::Exponent0Enum )
.addReal( 31, 40, OmmReal::Exponent0Enum )
.complete() )
.complete(), triHandle );
sleep( 1000 );
for ( Int32 i = 0; i < 60; i++ )
{
provider.submit( update.clear().serviceName( "NI_PUB" ).name( "IBM.N" )
.payload( fieldList.clear()
.addReal( 22, 14400 + i, OmmReal::ExponentNeg2Enum )
.addReal( 30, 10 + i, OmmReal::Exponent0Enum )
.complete() ), ibmHandle );
provider.submit( update.clear().serviceName( "NI_PUB" ).name( "TRI.N" )
.payload( fieldList.clear()
.addReal( 22, 4100 + i, OmmReal::ExponentNeg2Enum )
.addReal( 30, 21 + i, OmmReal::Exponent0Enum )
.complete() ), triHandle );
sleep( 1000 );
}
}
catch ( const OmmException& excp )
{
cout << excp << endl;
}
return 0;
}
示例6: del_fields_in_table
void del_fields_in_table(doid_t id, const Class* dcc, const FieldList &fields)
{
string name;
for(auto it = fields.begin(); it != fields.end(); ++it) {
const Field* field = *it;
if(field->has_keyword("db")) {
m_sql << "UPDATE fields_" << dcc->get_name() << " SET " << field->get_name()
<< "=NULL WHERE object_id=" << id << ";";
}
}
}
示例7: del_field
virtual void del_field(doid_t do_id, const Field* field)
{
const Class *dcc = get_class(do_id);
bool storable = is_storable(dcc->get_id());
if(storable) {
FieldList fields;
fields.push_back(field);
del_fields_in_table(do_id, dcc, fields);
}
}
示例8:
FieldList operator&(const FieldList & one, const FieldList & two)
{
if( one.size() == two.size() ) {
bool same = true;
foreach( Field * f, one )
if( !two.contains(f) ) {
same = false;
break;
}
if( same ) return one;
}
示例9: SumRow
static void SumRow( vector <double> & sums, const CSVRow & row,
const FieldList & fl ) {
for ( unsigned int i = 0; i < fl.size(); i++ ) {
unsigned int fi = fl.at(i);
if ( fi >= row.size() ) {
CSVTHROW( "Invalid field index" );
}
sums.at(i) += ALib::ToReal( row.at(fi) );
}
}
示例10: FieldList
FieldList* FieldList::subList(const QValueList<uint>& list)
{
Field *f;
FieldList *fl = new FieldList(false);
foreach(QValueList<uint>::ConstIterator, it, list) {
f = field(*it);
if (!f) {
KexiDBWarn << QString("FieldList::subList() could not find field at position %1").arg(*it) << endl;
delete fl;
return 0;
}
fl->addField(f);
}
示例11: drv_executeSQL
bool KexiDB::SybaseConnection::drv_beforeUpdate(const QString& table, FieldList& fields)
{
if (fields.autoIncrementFields()->isEmpty())
return true;
// explicit update of IDENTITY fields has taken place.
return drv_executeSQL(QString("SET IDENTITY_UPDATE %1 ON").arg(escapeIdentifier(table)));
}
示例12: decode
void AppClient::decode( const FieldList& fl )
{
while ( fl.forth() )
{
const FieldEntry& fe = fl.getEntry();
cout << "Name: " << fe.getName() << " Value: ";
if ( fe.getCode() == Data::BlankEnum )
cout << " blank" << endl;
else
switch ( fe.getLoadType() )
{
case DataType::RealEnum :
cout << fe.getReal().getAsDouble() << endl;
break;
case DataType::DateEnum :
cout << (UInt64)fe.getDate().getDay() << " / " << (UInt64)fe.getDate().getMonth() << " / " << (UInt64)fe.getDate().getYear() << endl;
break;
case DataType::TimeEnum :
cout << (UInt64)fe.getTime().getHour() << ":" << (UInt64)fe.getTime().getMinute() << ":" << (UInt64)fe.getTime().getSecond() << ":" << (UInt64)fe.getTime().getMillisecond() << endl;
break;
case DataType::IntEnum :
cout << fe.getInt() << endl;
break;
case DataType::UIntEnum :
cout << fe.getUInt() << endl;
break;
case DataType::AsciiEnum :
cout << fe.getAscii() << endl;
break;
case DataType::ErrorEnum :
cout << "( " << fe.getError().getErrorCodeAsString() << " )" <<endl;
break;
case DataType::EnumEnum :
cout << fe.getEnum() << endl;
break;
case DataType::RmtesEnum:
cout << fe.getRmtes().toString() << endl;
break;
default :
cout << endl;
break;
}
}
}
示例13: TEST
TEST(TestDatabaseUtils, GetSelectFields)
{
Fields fields;
FieldList fieldlist;
EXPECT_FALSE(DatabaseUtils::GetSelectFields(fields, MediaTypeAlbum,
fieldlist));
fields.insert(FieldId);
fields.insert(FieldGenre);
fields.insert(FieldAlbum);
fields.insert(FieldArtist);
fields.insert(FieldTitle);
EXPECT_FALSE(DatabaseUtils::GetSelectFields(fields, MediaTypeNone,
fieldlist));
EXPECT_TRUE(DatabaseUtils::GetSelectFields(fields, MediaTypeAlbum,
fieldlist));
EXPECT_FALSE(fieldlist.empty());
}
示例14: SortFromDataset
bool SortUtils::SortFromDataset(const SortDescription &sortDescription, const MediaType &mediaType, const std::unique_ptr<dbiplus::Dataset> &dataset, DatabaseResults &results)
{
FieldList fields;
if (!DatabaseUtils::GetSelectFields(SortUtils::GetFieldsForSorting(sortDescription.sortBy), mediaType, fields))
fields.clear();
if (!DatabaseUtils::GetDatabaseResults(mediaType, fields, dataset, results))
return false;
SortDescription sorting = sortDescription;
if (sortDescription.sortBy == SortByNone)
{
sorting.limitStart = 0;
sorting.limitEnd = -1;
}
Sort(sorting, results);
return true;
}
示例15: if
bool DatabaseUtils::GetSelectFields(const Fields &fields, const MediaType &mediaType, FieldList &selectFields)
{
if (mediaType == MediaTypeNone || fields.empty())
return false;
Fields sortFields = fields;
// add necessary fields to create the label
if (mediaType == MediaTypeSong || mediaType == MediaTypeVideo || mediaType == MediaTypeVideoCollection ||
mediaType == MediaTypeMusicVideo || mediaType == MediaTypeMovie || mediaType == MediaTypeTvShow || mediaType == MediaTypeEpisode)
sortFields.insert(FieldTitle);
if (mediaType == MediaTypeEpisode)
{
sortFields.insert(FieldSeason);
sortFields.insert(FieldEpisodeNumber);
}
else if (mediaType == MediaTypeAlbum)
sortFields.insert(FieldAlbum);
else if (mediaType == MediaTypeSong)
sortFields.insert(FieldTrackNumber);
else if (mediaType == MediaTypeArtist)
sortFields.insert(FieldArtist);
selectFields.clear();
for (Fields::const_iterator it = sortFields.begin(); it != sortFields.end(); ++it)
{
// ignore FieldLabel because it needs special handling (see further up)
if (*it == FieldLabel)
continue;
if (GetField(*it, mediaType, DatabaseQueryPartSelect).empty())
{
CLog::Log(LOGDEBUG, "DatabaseUtils::GetSortFieldList: unknown field %d", *it);
continue;
}
selectFields.push_back(*it);
}
return !selectFields.empty();
}