Request received from the POSTGRES base the values of the DateTime. In the database, the DateTimeEND NULL value, respectively, must be NULL in a variable, but when checking either validity or NULL ( if( !m_dtDateTimeBGN.isNULL() ) ) application drops SIGSEGV. Tried to initialize with an empty constructor m_dtDateTimeEND = QDateTime(); but the result is the same.
... QDateTime m_dtDateTimeBGN; QDateTime m_dtDateTimeEND; ... if( !oSqlRecord.value( "BGN_DATE" ).isNull() ) { m_dtDateTimeBGN = oSqlRecord.value( "BGN_DATE" ).toDateTime() ; } else { m_dtDateTimeBGN = QDateTime(); } if( !oSqlRecord.value( "END_DATE" ).isNull() ) { m_dtDateTimeEND = oSqlRecord.value( "END_DATE" ).toDateTime(); } else { m_dtDateTimeEND = QDateTime(); } QString CLiqMeterCommissioning::getPeriodLiqMeter() const { QString sPeriod; if( !m_dtDateTimeBGN.isValid() ) { if( !m_dtDateTimeEND.isValid() )// Здесь падает { sPeriod = MainWindow::AMR_TR( "Был в эксплуатации с %1 до %2" ) .arg( m_dtDateTimeBGN.toString( "dd MMMM yyyy hh:mm" ) ) .arg( m_dtDateTimeEND.toString( "dd MMMM yyyy hh:mm" ) ); } else { sPeriod = MainWindow::AMR_TR( "В эксплуатации с %1" ) .arg( m_dtDateTimeBGN.toString( "dd MMMM yyyy hh:mm" ) ); } } else { if( !m_dtDateTimeEND.isValid() ) { sPeriod = MainWindow::AMR_TR( "Был в эксплуатации до %1" ) .arg( m_dtDateTimeEND.toString( "dd MMMM yyyy hh:mm" ) ); } else { } } return sPeriod; }
getPeriodLiqMeteris called earlier than initialization code? : D - gil9red