SQL/MySQL: don't use deprecated defines, cleanup
Replace plain int with enum 'enum_field_types' and don't use deprecated MySQL type names. Change-Id: I8a629ac1b4ad7d6d78604ff641b5b35397cd769c Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 4091d73af8fdc42b538d5bf82442f5e79b34ff1d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
252a29f716
commit
61c59f2d8b
@ -181,59 +181,59 @@ static QSqlError qMakeError(const QString& err, QSqlError::ErrorType type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static QMetaType qDecodeMYSQLType(int mysqltype, uint flags)
|
static QMetaType qDecodeMYSQLType(enum_field_types mysqltype, uint flags)
|
||||||
{
|
{
|
||||||
QMetaType::Type type;
|
QMetaType::Type type;
|
||||||
switch (mysqltype) {
|
switch (mysqltype) {
|
||||||
case FIELD_TYPE_TINY :
|
case MYSQL_TYPE_TINY:
|
||||||
type = (flags & UNSIGNED_FLAG) ? QMetaType::UChar : QMetaType::Char;
|
type = (flags & UNSIGNED_FLAG) ? QMetaType::UChar : QMetaType::Char;
|
||||||
break;
|
break;
|
||||||
case FIELD_TYPE_SHORT :
|
case MYSQL_TYPE_SHORT:
|
||||||
type = (flags & UNSIGNED_FLAG) ? QMetaType::UShort : QMetaType::Short;
|
type = (flags & UNSIGNED_FLAG) ? QMetaType::UShort : QMetaType::Short;
|
||||||
break;
|
break;
|
||||||
case FIELD_TYPE_LONG :
|
case MYSQL_TYPE_LONG:
|
||||||
case FIELD_TYPE_INT24 :
|
case MYSQL_TYPE_INT24:
|
||||||
type = (flags & UNSIGNED_FLAG) ? QMetaType::UInt : QMetaType::Int;
|
type = (flags & UNSIGNED_FLAG) ? QMetaType::UInt : QMetaType::Int;
|
||||||
break;
|
break;
|
||||||
case FIELD_TYPE_YEAR :
|
case MYSQL_TYPE_YEAR:
|
||||||
type = QMetaType::Int;
|
type = QMetaType::Int;
|
||||||
break;
|
break;
|
||||||
case FIELD_TYPE_LONGLONG :
|
case MYSQL_TYPE_LONGLONG:
|
||||||
type = (flags & UNSIGNED_FLAG) ? QMetaType::ULongLong : QMetaType::LongLong;
|
type = (flags & UNSIGNED_FLAG) ? QMetaType::ULongLong : QMetaType::LongLong;
|
||||||
break;
|
break;
|
||||||
case FIELD_TYPE_FLOAT :
|
case MYSQL_TYPE_FLOAT:
|
||||||
case FIELD_TYPE_DOUBLE :
|
case MYSQL_TYPE_DOUBLE:
|
||||||
case FIELD_TYPE_DECIMAL :
|
case MYSQL_TYPE_DECIMAL:
|
||||||
#if defined(FIELD_TYPE_NEWDECIMAL)
|
case MYSQL_TYPE_NEWDECIMAL:
|
||||||
case FIELD_TYPE_NEWDECIMAL:
|
|
||||||
#endif
|
|
||||||
type = QMetaType::Double;
|
type = QMetaType::Double;
|
||||||
break;
|
break;
|
||||||
case FIELD_TYPE_DATE :
|
case MYSQL_TYPE_DATE:
|
||||||
type = QMetaType::QDate;
|
type = QMetaType::QDate;
|
||||||
break;
|
break;
|
||||||
case FIELD_TYPE_TIME :
|
case MYSQL_TYPE_TIME:
|
||||||
// A time field can be within the range '-838:59:59' to '838:59:59' so
|
// A time field can be within the range '-838:59:59' to '838:59:59' so
|
||||||
// use QString instead of QTime since QTime is limited to 24 hour clock
|
// use QString instead of QTime since QTime is limited to 24 hour clock
|
||||||
type = QMetaType::QString;
|
type = QMetaType::QString;
|
||||||
break;
|
break;
|
||||||
case FIELD_TYPE_DATETIME :
|
case MYSQL_TYPE_DATETIME:
|
||||||
case FIELD_TYPE_TIMESTAMP :
|
case MYSQL_TYPE_TIMESTAMP:
|
||||||
type = QMetaType::QDateTime;
|
type = QMetaType::QDateTime;
|
||||||
break;
|
break;
|
||||||
case FIELD_TYPE_STRING :
|
case MYSQL_TYPE_STRING:
|
||||||
case FIELD_TYPE_VAR_STRING :
|
case MYSQL_TYPE_VAR_STRING:
|
||||||
case FIELD_TYPE_BLOB :
|
case MYSQL_TYPE_BLOB:
|
||||||
case FIELD_TYPE_TINY_BLOB :
|
case MYSQL_TYPE_TINY_BLOB:
|
||||||
case FIELD_TYPE_MEDIUM_BLOB :
|
case MYSQL_TYPE_MEDIUM_BLOB:
|
||||||
case FIELD_TYPE_LONG_BLOB :
|
case MYSQL_TYPE_LONG_BLOB:
|
||||||
case FIELD_TYPE_GEOMETRY :
|
case MYSQL_TYPE_GEOMETRY:
|
||||||
case MYSQL_TYPE_JSON:
|
case MYSQL_TYPE_JSON:
|
||||||
type = (flags & BINARY_FLAG) ? QMetaType::QByteArray : QMetaType::QString;
|
type = (flags & BINARY_FLAG) ? QMetaType::QByteArray : QMetaType::QString;
|
||||||
break;
|
break;
|
||||||
default:
|
case MYSQL_TYPE_ENUM:
|
||||||
case FIELD_TYPE_ENUM :
|
case MYSQL_TYPE_SET:
|
||||||
case FIELD_TYPE_SET :
|
type = QMetaType::QString;
|
||||||
|
break;
|
||||||
|
default: // needed because there are more enum values which are not available in all headers
|
||||||
type = QMetaType::QString;
|
type = QMetaType::QString;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -243,7 +243,7 @@ static QMetaType qDecodeMYSQLType(int mysqltype, uint flags)
|
|||||||
static QSqlField qToField(MYSQL_FIELD *field)
|
static QSqlField qToField(MYSQL_FIELD *field)
|
||||||
{
|
{
|
||||||
QSqlField f(QString::fromUtf8(field->name),
|
QSqlField f(QString::fromUtf8(field->name),
|
||||||
qDecodeMYSQLType(int(field->type), field->flags),
|
qDecodeMYSQLType(field->type, field->flags),
|
||||||
QString::fromUtf8(field->table));
|
QString::fromUtf8(field->table));
|
||||||
f.setRequired(IS_NOT_NULL(field->flags));
|
f.setRequired(IS_NOT_NULL(field->flags));
|
||||||
f.setLength(field->length);
|
f.setLength(field->length);
|
||||||
@ -262,7 +262,7 @@ static QSqlError qMakeStmtError(const QString& err, QSqlError::ErrorType type,
|
|||||||
type, QString::number(mysql_stmt_errno(stmt)));
|
type, QString::number(mysql_stmt_errno(stmt)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool qIsBlob(int t)
|
static bool qIsBlob(enum_field_types t)
|
||||||
{
|
{
|
||||||
return t == MYSQL_TYPE_TINY_BLOB
|
return t == MYSQL_TYPE_TINY_BLOB
|
||||||
|| t == MYSQL_TYPE_BLOB
|
|| t == MYSQL_TYPE_BLOB
|
||||||
@ -271,7 +271,7 @@ static bool qIsBlob(int t)
|
|||||||
|| t == MYSQL_TYPE_JSON;
|
|| t == MYSQL_TYPE_JSON;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool qIsTimeOrDate(int t)
|
static bool qIsTimeOrDate(enum_field_types t)
|
||||||
{
|
{
|
||||||
// *not* MYSQL_TYPE_TIME because its range is bigger than QTime
|
// *not* MYSQL_TYPE_TIME because its range is bigger than QTime
|
||||||
// (see above)
|
// (see above)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user