@@ -832,28 +832,6 @@ void QMYSQLResult::virtual_hook(int id, void *data)
832832 QSqlResult::virtual_hook (id, data);
833833}
834834
835- static QT_MYSQL_TIME *toMySqlDate (QDate date, QTime time, int type)
836- {
837- Q_ASSERT (type == QMetaType::QTime || type == QMetaType::QDate
838- || type == QMetaType::QDateTime);
839-
840- auto myTime = new QT_MYSQL_TIME{};
841-
842- if (type == QMetaType::QTime || type == QMetaType::QDateTime) {
843- myTime->hour = time.hour ();
844- myTime->minute = time.minute ();
845- myTime->second = time.second ();
846- myTime->second_part = time.msec () * 1000 ;
847- }
848- if (type == QMetaType::QDate || type == QMetaType::QDateTime) {
849- myTime->year = date.year ();
850- myTime->month = date.month ();
851- myTime->day = date.day ();
852- }
853-
854- return myTime;
855- }
856-
857835bool QMYSQLResult::prepare (const QString& query)
858836{
859837 Q_D (QMYSQLResult);
@@ -943,25 +921,39 @@ bool QMYSQLResult::exec()
943921 case QMetaType::QTime:
944922 case QMetaType::QDate:
945923 case QMetaType::QDateTime: {
946- QT_MYSQL_TIME * myTime = toMySqlDate (val. toDate (), val. toTime (), val. userType ()) ;
924+ auto myTime = new QT_MYSQL_TIME{} ;
947925 timeVector.append (myTime);
948-
949926 currBind->buffer = myTime;
950- switch (val.userType ()) {
951- case QMetaType::QTime:
927+
928+ QDate date;
929+ QTime time;
930+ int type = val.userType ();
931+ if (type == QMetaType::QTime) {
932+ time = val.toTime ();
952933 currBind->buffer_type = MYSQL_TYPE_TIME;
953934 myTime->time_type = MYSQL_TIMESTAMP_TIME;
954- break ;
955- case QMetaType::QDate:
935+ } else if (type == QMetaType::QDate) {
936+ date = val. toDate ();
956937 currBind->buffer_type = MYSQL_TYPE_DATE;
957938 myTime->time_type = MYSQL_TIMESTAMP_DATE;
958- break ;
959- case QMetaType::QDateTime:
939+ } else {
940+ QDateTime dt = val.toDateTime ();
941+ date = dt.date ();
942+ time = dt.time ();
960943 currBind->buffer_type = MYSQL_TYPE_DATETIME;
961944 myTime->time_type = MYSQL_TIMESTAMP_DATETIME;
962- break ;
963- default :
964- break ;
945+ }
946+
947+ if (type == QMetaType::QTime || type == QMetaType::QDateTime) {
948+ myTime->hour = time.hour ();
949+ myTime->minute = time.minute ();
950+ myTime->second = time.second ();
951+ myTime->second_part = time.msec () * 1000 ;
952+ }
953+ if (type == QMetaType::QDate || type == QMetaType::QDateTime) {
954+ myTime->year = date.year ();
955+ myTime->month = date.month ();
956+ myTime->day = date.day ();
965957 }
966958 currBind->buffer_length = sizeof (QT_MYSQL_TIME);
967959 currBind->length = 0 ;
0 commit comments