Проблема с выборкой данных в БД

Есть у меня БД карт. Написал выборку, но почему-то работает не со всеми значениями

QString DataBase::selectMapId         (const QVariantList &data)     //  
{
    QSqlQuery query;
    query.prepare("SELECT id FROM " MAPS_TABLE_NAME " WHERE " + data[0].toString() + "= :ColumnName");
    query.bindValue(":ColumnName",          data[1].toString());
    // После чего выполняется запросом методом exec()
    if(!query.exec())
    {
        qDebug() << "error select id " << SCALES_TABLE_NAME;
        qDebug() << query.lastError().text();
        return NULL;
    }
    else
    {
        QString c3ountry = query.value(0).toString();
        while (query.next())
        {
            QString Check_1 = query.value(0).toString();
        }
        query.first();
        return query.value(0).toString();
    }
    return NULL;
}

Выбирает коректно ID карт где-то до 300, а после почему-то ломается. Данные хранятся правильно и как бы в одинаковом формате, так что понять не могу почему. Дальше есть функцыя выбирает магнитное склонение карты и такая же ситуацыя. Запрос обрабатывает коректно, но ничего не возвращает.

QVariantList DataBase::selectMapMagDef       (const QVariantList &data) /
{
    QSqlQuery querySelect;
    querySelect.prepare("SELECT " MAGDEF_TABLE_DEGREES ", " MAGDEF_TABLE_MINUTES " FROM " MAGDEF_TABLE_NAME " WHERE " MAGDEF_TABLE_YEAR_ID " = :YearId" " AND " MAGDEF_TABLE_MAP_ID " = :MapId");
    querySelect.bindValue(":YearId" , data[0].toString());
    querySelect.bindValue(":MapId"  , data[1].toString());
    QVariantList lReturn;
    if(!querySelect.exec())
    {
        qDebug() << "Error select from table " MAGDEF_TABLE_NAME;
        qDebug() << querySelect.lastError().text();
        return lReturn;
    }
    else
    {
        while (querySelect.next())
        {
            QString Check_1 = querySelect.value(0).toString();
            QString Check_2 = querySelect.value(1).toString();
        }
        querySelect.first();
        qDebug() << "Selected from table " MAGDEF_TABLE_NAME;
        lReturn.append(querySelect.value(0).toString());
        lReturn.append(querySelect.value(1).toString());
        return lReturn;
    }
    return lReturn;
}

Вот код ниже ка я все ето запускаю.

QString MapId   = db->selectMapId(MapNom);
QString YearId  = db->selectYearId(Year);
QVariantList MagDefIn;
MagDefIn.append(MapId);
MagDefIn.append(YearId);
QVariantList MagDef  = db->selectMapMagDef  (MagDefIn); 
QVariantList MapCoor = db->selectMapCoordinates (MapNom_); 
MagDefDegrees->setText( MagDef[0].toString());
MagDefMinutes->setText( MagDef[1].toString());

Если надо будет скинуть другие части программы то скажыте. Заранее спасибо!

void MagDef::Check_Button_Clicked()
{
    db = new DataBase;
    db->connectToDataBase();

    //Вибираємо текст нашого поля вводу
    QString lNomenclature   = nomenclatureEdit  ->text();
    QString lLATDegree      = LATDegreeEdit     ->text();
    QString lLATMinute      = LATMinuteEdit     ->text();
    QString lLNGDegree      = LNGDegreeEdit     ->text();
    QString lLNGMinute      = LNGMinuteEdit     ->text();
    QString lLNGSecond      = LNGSecondEdit     ->text();
    QString lYear           = Year              ->text();

    QString lLATCoordinates = lLATDegree + "°" + lLATMinute + "'";
                              QString lLNGCoordinates = lLNGDegree + "°" + lLNGMinute + "'"+ lLNGSecond + "\"";
          QMessageBox messageBox;

    QVariantList Year;
    Year.append(lYear);

    QVariantList MapNom;
    MapNom.append("Nomenclature");
    MapNom.append(lNomenclature);

    QVariantList MapNom_;
    MapNom_.append(lNomenclature);

    QVariantList MapCoor;
    MapCoor.append(lLATCoordinates);
    MapCoor.append(lLNGCoordinates);

    bool l  = db->existMap(MapNom);
    bool l2 = db->existMapCoordinates(MapCoor);

    if(db->existMap(MapNom))
    {
        QString MapId   = db->selectMapId(MapNom);
        QString YearId  = db->selectYearId(Year);
        QVariantList MagDefIn;
        MagDefIn.append(MapId);
        MagDefIn.append(YearId);
        QVariantList MagDef  = db->selectMapMagDef  (MagDefIn); //Повертає магніте схилення карти вибіркою за номенклатурою;
        QVariantList MapCoor = db->selectMapCoordinates (MapNom_); //Повертає магніте схилення карти вибіркою за номенклатурою;
        MagDefDegrees->setText( MagDef[0].toString());
        MagDefMinutes->setText( MagDef[1].toString());

    }
    else if(db->existMapCoordinates(MapCoor))
    {
        QString MapNomStr =  db->selectMapNomenclature (MapCoor); //Повертає номенклатуру  карти   вибіркою  за  координатами

        QVariantList MapNom_2;
        MapNom_2.append("Nomenclature");
        MapNom_2.append(MapNomStr);

        QString MapId   = db->selectMapId(MapNom_2);
        QString YearId  = db->selectYearId(Year);

        QVariantList MagDefIn;
        MagDefIn.append(MapId);
        MagDefIn.append(YearId);
        QVariantList MagDef  = db->selectMapMagDef  (MagDefIn); //Повертає магніте схилення карти вибіркою за номенклатурою;


        MagDefDegrees->setText( MagDef[0].toString());
        MagDefMinutes->setText( MagDef[1].toString());
    }
    else
    {
        std::string lOutput = "Данні введені не вірно!";
        messageBox.information( 0, QString::fromStdString("Error"), lOutput.c_str() );
    }
    //    moveToCenterMessageBoxS(&messageBox);
}

*Вот полный код котороый проверяет все на вопрос с комента. Проверял работает на некоторых картах, но не на всех


Ответы (0 шт):