本文整理汇总了C++中FLFieldMetaData::allowNull方法的典型用法代码示例。如果您正苦于以下问题:C++ FLFieldMetaData::allowNull方法的具体用法?C++ FLFieldMetaData::allowNull怎么用?C++ FLFieldMetaData::allowNull使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FLFieldMetaData
的用法示例。
在下文中一共展示了FLFieldMetaData::allowNull方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sqlCreateTable
//.........这里部分代码省略.........
return QString::null;
}
QDictIterator<FLFieldMetaData> it2(*fieldList);
while ((field = it2.current()) != 0) {
++it2;
sql += field->name();
switch (field->type()) {
case QVariant::Int:
sql += " INTEGER";
break;
case QVariant::UInt:
sql += " INTEGER";
break;
case QVariant::Bool:
case FLFieldMetaData::Unlock:
sql += " BOOLEAN";
break;
case QVariant::Double:
sql += " FLOAT";
break;
case QVariant::Time:
sql += " VARCHAR(20)";
break;
case QVariant::Date:
sql += " VARCHAR(20)";
break;
case QVariant::Pixmap:
sql += " TEXT";
break;
case QVariant::String:
sql += " VARCHAR";
break;
case QVariant::StringList:
sql += " TEXT";
break;
case QVariant::ByteArray:
sql += " CLOB";
break;
case FLFieldMetaData::Serial:
sql += " INTEGER";
if (!field->isPrimaryKey())
sql += " PRIMARY KEY";
break;
}
int longitud = field->length();
if (longitud > 0)
sql += "(" + QString::number(longitud) + ")";
if (field->isPrimaryKey()) {
if (primaryKey.isEmpty()) {
sql += " PRIMARY KEY";
primaryKey = field->name();
} else {
#ifdef FL_DEBUG
qWarning(QApplication::tr("FLManager : Tabla -> ") +
tmd->name() + QApplication::tr(" . Se ha intentado poner una segunda clave primaria para el campo ") +
field->name() + QApplication::tr(" , pero el campo ") + primaryKey +
QApplication::tr(" ya es clave primaria. Sólo puede existir una clave primaria en FLTableMetaData, use FLCompoundKey para crear claves compuestas."));
#endif
return QString::null;
}
} else {
if (field->isUnique())
sql += " UNIQUE";
if (!field->allowNull())
sql += " NOT NULL";
else
sql += " NULL";
}
if (it2.current())
sql += ",";
}
sql += ");";
QString createIndex = "CREATE INDEX " + tmd->name() + "_pkey ON " + tmd->name() + " (" + tmd->primaryKey() + ");";
sql += createIndex;
return sql;
#endif //FL_QUICK_CLIENT
return QString::null;
}
示例2: alterTable
//.........这里部分代码省略.........
if (newMTD)
delete newMTD;
return false;
}
if (fieldList->isEmpty()) {
#ifdef FL_DEBUG
qWarning("FLManager::alterTable : " + QApplication::tr("Los nuevos metadatos no tienen campos."));
#endif
db_->dbAux() ->rollback();
if ((oldMTD != newMTD) && oldMTD)
delete oldMTD;
if (newMTD)
delete newMTD;
return false;
}
QVariant v;
bool ok = true;
while (oldCursor.next()) {
newBuffer = newCursor.primeInsert();
QDictIterator<FLFieldMetaData> it(*fieldList);
while ((newField = it.current()) != 0) {
++it;
oldField = oldMTD->field(newField->name());
if (!oldField || !oldCursor.field(oldField->name())) {
if (!oldField)
oldField = newField;
v = newField->defaultValue();
v.cast(FLFieldMetaData::flDecodeType(newField->type()));
} else {
v = oldCursor.value(newField->name());
if ((!oldField->allowNull() || !newField->allowNull()) &&
(v.isNull() || !v.isValid())) {
QVariant defVal(newField->defaultValue());
if (!defVal.isNull() && defVal.isValid())
v = defVal;
}
if (!v.cast(newBuffer->value(newField->name()).type())) {
#ifdef FL_DEBUG
qWarning("FLManager::alterTable : " +
QApplication::tr("Los tipos del campo %1 no son compatibles. Se introducirá un valor nulo.")
.arg(newField->name()));
#endif
}
}
if ((!oldField->allowNull() || !newField->allowNull()) && (v.isNull() || !v.isValid())) {
switch (oldField->type()) {
case QVariant::Int:
case FLFieldMetaData::Serial:
case QVariant::UInt:
case QVariant::Bool:
case FLFieldMetaData::Unlock:
v = int(0);
break;
case QVariant::Double:
v = double(0.0);
break;
case QVariant::Time:
v = QTime::currentTime();
break;
case QVariant::Date:
v = QDate::currentDate();
break;
default:
v = QString("NULL").left(newField->length());
break;
}
}
newBuffer->setValue(newField->name(), v);
}
if (!newCursor.insert()) {
ok = false;
break;
}
progress.setProgress(++step);
}
progress.setProgress(totalSteps);
if ((oldMTD != newMTD) && oldMTD)
delete oldMTD;
if (newMTD)
delete newMTD;
if (ok)
db_->dbAux() ->commit();
else {
db_->dbAux() ->rollback();
return false;
}
#else
return true;
#endif //FL_QUICK_CLIENT
}