From 65be7b3f5fc8deb99128fe63c3109bce48c676bd Mon Sep 17 00:00:00 2001 From: Wayne Merricks Date: Sat, 4 Jun 2016 23:45:17 +0100 Subject: [PATCH] importers/rivendell_filter.cpp MySQL v5.7+ date/time changes Unsure if the times can be invalid but old MySQL values can have 0000-00-00 as dates but the 5.7+ can't. There is a null check for this but I'm not 100% sure whether 0000-00-00 passes the isNull. Put in a date check for both just in case. --- importers/rivendell_filter.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/importers/rivendell_filter.cpp b/importers/rivendell_filter.cpp index de6b68da..fdef11de 100644 --- a/importers/rivendell_filter.cpp +++ b/importers/rivendell_filter.cpp @@ -304,8 +304,7 @@ MainObject::MainObject(QObject *parent) (const char *)RDEscapeString(q->value(3).toString()), (const char *)RDEscapeString(q->value(4).toString()), (const char *)RDEscapeString(q->value(5).toString()), - (const char *)q->value(6).toDate(). - toString("yyyy-MM-dd"), + (const char *)RDCheckDateTime(q->value(6).toDate(),"yyyy-MM-dd"), (const char *)RDEscapeString(q->value(7).toString()), (const char *)RDEscapeString(q->value(8).toString()), (const char *)RDEscapeString(q->value(9).toString()), @@ -349,32 +348,32 @@ MainObject::MainObject(QObject *parent) } else { start_datetime=QString().sprintf("\"%s\"", - (const char *)q1->value(7). - toDateTime().toString("yyyy-MM-dd hh:mm:ss")); + (const char *)RDCheckDateTime(q1->value(7). + toDateTime(),"yyyy-MM-dd hh:mm:ss"));//Could be invalid (0000-00-00) } if(q1->value(8).isNull()) { end_datetime="null"; } else { end_datetime=QString().sprintf("\"%s\"", - (const char *)q1->value(8). - toDateTime().toString("yyyy-MM-dd hh:mm:ss")); + (const char *)RDCheckDateTime(q1->value(8). + toDateTime(),"yyyy-MM-dd hh:mm:ss"));//Could be invalid (0000-00-00) } if(q1->value(16).isNull()) { start_daypart="null"; } else { start_daypart=QString().sprintf("\"%s\"", - (const char *)q1->value(16). - toTime().toString("hh:mm:ss")); + (const char *)RDCheckDateTime(q1->value(16). + toTime(),"hh:mm:ss"));//Invalid possible? } if(q1->value(17).isNull()) { end_daypart="null"; } else { end_daypart=QString().sprintf("\"%s\"", - (const char *)q1->value(17). - toTime().toString("hh:mm:ss")); + (const char *)RDCheckDateTime(q1->value(17). + toTime(),"hh:mm:ss"));//Invalid possible? } sql=QString().sprintf("insert into CUTS set CART_NUMBER=%u,\ CUT_NAME=\"%s\",\