data types test 2
This commit is contained in:
parent
e75f4f1da7
commit
4e08afb8a6
|
|
@ -34,7 +34,7 @@ QString SqliteGenerator::fieldType(FieldModel *field)
|
|||
QString ret = field->name + " ";
|
||||
QString dbType;
|
||||
|
||||
switch (static_cast<QMetaType::Type>(field->type)) {
|
||||
switch (field->type) {
|
||||
case QMetaType::Bool: return "BOOLEAN";
|
||||
case QMetaType::QByteArray: return "BLOB";
|
||||
case QMetaType::QDate: return "DATE";
|
||||
|
|
@ -55,17 +55,26 @@ QString SqliteGenerator::fieldType(FieldModel *field)
|
|||
case QMetaType::LongLong: return "BIGINT";
|
||||
case QMetaType::ULongLong: return "BIGINT UNSIGNED";
|
||||
|
||||
case QMetaType::QChar: return "NCHAR(1)";
|
||||
|
||||
case QMetaType::QUrl:
|
||||
case QMetaType::QJsonArray:
|
||||
case QMetaType::QJsonValue:
|
||||
case QMetaType::QJsonObject:
|
||||
case QMetaType::QJsonDocument:
|
||||
case QMetaType::QUuid: return "text";
|
||||
|
||||
// if (field->isAutoIncrement)
|
||||
// dbType.append(" PRIMARY KEY AUTOINCREMENT");
|
||||
|
||||
case QMetaType::QString:
|
||||
if(field->length)
|
||||
return QString("VARCHAR(%1)").arg(field->length);
|
||||
else
|
||||
return "TEXT";
|
||||
default:
|
||||
qDebug() << "The type (" << field->type << ") does not supported";
|
||||
qWarning("The type (%s) does not supported",
|
||||
QMetaType::typeName(field->type));
|
||||
return QString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ NUT_BEGIN_NAMESPACE
|
|||
class SqliteGenerator : public SqlGeneratorBase
|
||||
{
|
||||
public:
|
||||
explicit SqliteGenerator(Database *parent = 0);
|
||||
explicit SqliteGenerator(Database *parent = nullptr);
|
||||
|
||||
QString fieldType(FieldModel *field);
|
||||
|
||||
|
|
|
|||
|
|
@ -219,7 +219,7 @@ TableModel::TableModel(int typeId, QString tableName)
|
|||
f = fieldObj;
|
||||
if(!fieldObj)
|
||||
continue;
|
||||
fieldObj->type = fieldProperty.type();
|
||||
fieldObj->type = static_cast<QMetaType::Type>(fieldProperty.type());
|
||||
fieldObj->typeName = QString(fieldProperty.typeName());
|
||||
}
|
||||
|
||||
|
|
@ -303,7 +303,8 @@ TableModel::TableModel(QJsonObject json, QString tableName)
|
|||
QJsonObject fieldObject = fields.value(key).toObject();
|
||||
FieldModel *f = new FieldModel;
|
||||
f->name = fieldObject.value(__NAME).toString();
|
||||
f->type = QVariant::nameToType(fieldObject.value(__TYPE).toString().toLatin1().data());
|
||||
f->type = static_cast<QMetaType::Type>(QMetaType::type(fieldObject.value(__TYPE).toString().toLatin1().data()));
|
||||
f->typeName = QMetaType::typeName(f->type);
|
||||
|
||||
if(fieldObject.contains(__nut_NOT_NULL))
|
||||
f->notNull = fieldObject.value(__nut_NOT_NULL).toBool();
|
||||
|
|
@ -414,7 +415,7 @@ QString TableModel::primaryKey() const
|
|||
FieldModel::FieldModel(const QJsonObject &json)
|
||||
{
|
||||
name = json.value(__NAME).toString();
|
||||
type = static_cast<QVariant::Type>(json.value(__TYPE).toInt());
|
||||
type = static_cast<QMetaType::Type>(json.value(__TYPE).toInt());
|
||||
length = json.value(__nut_LEN).toInt();
|
||||
notNull = json.value(__nut_NOT_NULL).toBool();
|
||||
isAutoIncrement = json.value(__nut_AUTO_INCREMENT).toBool();
|
||||
|
|
|
|||
|
|
@ -40,8 +40,7 @@ struct FieldModel{
|
|||
explicit FieldModel(const QJsonObject &json);
|
||||
|
||||
QString name;
|
||||
//TODO: QMetaType::Type??
|
||||
QVariant::Type type;
|
||||
QMetaType::Type type;
|
||||
QString typeName;
|
||||
int length;
|
||||
QString defaultValue;
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@
|
|||
|
||||
#include "sampletable.h"
|
||||
|
||||
#include "generators/sqlitegenerator.h"
|
||||
#include "generators/sqlservergenerator.h"
|
||||
|
||||
#define PRINT(x) qDebug() << #x "=" << x;
|
||||
#define TIC() QElapsedTimer timer; timer.start()
|
||||
#define TOC() qDebug() << QString("Elapsed time: %1ms for %2") \
|
||||
|
|
@ -43,7 +46,66 @@ void MainTest::initTestCase()
|
|||
|
||||
void MainTest::types()
|
||||
{
|
||||
// QMetaEnum en = QMetaEnum::fromType<QMetaType::Type>();
|
||||
QList<QMetaType::Type> types;
|
||||
types
|
||||
<< QMetaType::Bool
|
||||
<< QMetaType::Int
|
||||
<< QMetaType::UInt
|
||||
<< QMetaType::Double
|
||||
<< QMetaType::QChar
|
||||
<< QMetaType::QString
|
||||
<< QMetaType::QByteArray
|
||||
<< QMetaType::Long
|
||||
<< QMetaType::LongLong
|
||||
<< QMetaType::Short
|
||||
<< QMetaType::Char
|
||||
<< QMetaType::ULong
|
||||
<< QMetaType::ULongLong
|
||||
<< QMetaType::UShort
|
||||
<< QMetaType::SChar
|
||||
<< QMetaType::UChar
|
||||
<< QMetaType::Float
|
||||
<< QMetaType::QDate
|
||||
// << QMetaType::QSize
|
||||
<< QMetaType::QTime
|
||||
// << QMetaType::QPolygon
|
||||
// << QMetaType::QPolygonF
|
||||
// << QMetaType::QColor
|
||||
// << QMetaType::QSizeF
|
||||
// << QMetaType::QRectF
|
||||
// << QMetaType::QLine
|
||||
// << QMetaType::QStringList
|
||||
// << QMetaType::QLineF
|
||||
// << QMetaType::QRect
|
||||
// << QMetaType::QPoint
|
||||
<< QMetaType::QUrl
|
||||
<< QMetaType::QDateTime
|
||||
// << QMetaType::QPointF
|
||||
// << QMetaType::QRegion
|
||||
// << QMetaType::QBitArray
|
||||
// << QMetaType::QImage
|
||||
// << QMetaType::QPixmap
|
||||
// << QMetaType::QLocale
|
||||
// << QMetaType::QMatrix
|
||||
// << QMetaType::QMatrix4x4
|
||||
// << QMetaType::QVector2D
|
||||
// << QMetaType::QVector3D
|
||||
// << QMetaType::QVector4D
|
||||
<< QMetaType::QJsonValue
|
||||
<< QMetaType::QJsonObject
|
||||
<< QMetaType::QJsonArray
|
||||
<< QMetaType::QJsonDocument
|
||||
<< QMetaType::QUuid
|
||||
// << QMetaType::QByteArrayList
|
||||
;
|
||||
|
||||
Nut::SqlServerGenerator g;
|
||||
Nut::FieldModel m;
|
||||
foreach (QMetaType::Type t, types) {
|
||||
m.type = t;
|
||||
QString fn = g.fieldType(&m);
|
||||
Q_ASSERT(!fn.isEmpty());
|
||||
}
|
||||
// for (int i = 0; i < en.keyCount(); i++)
|
||||
// qDebug() << en.value(i);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ class MainTest : public QObject
|
|||
Q_OBJECT
|
||||
DB db;
|
||||
|
||||
// void test_generator();
|
||||
public:
|
||||
explicit MainTest(QObject *parent = nullptr);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue