Russian Qt Forum

Qt => Базы данных => Тема начата: BuRn от Май 16, 2013, 11:39



Название: QSqlQuery дублирование записей при вставке
Отправлено: BuRn от Май 16, 2013, 11:39
Добрый день. Не могу понять в чем дело. Есть конструктор, который вставляет в базу 1 запись, состоит из 2 строк:
Код:
    QSqlQuery query(QString("INSERT INTO order_order (cashier_id) values ('%1')").arg(cashier.getID()));
    query.exec();
Но засада вся в том, что почему - то он мне вставляет вместо одной записи , ажно две, с чем может быть связанно данное поведение ?


Название: Re: QSqlQuery дублирование записей при вставке
Отправлено: Serr500 от Май 16, 2013, 11:42
Ну, например, с тем, что конструктор вызывается два раза...


Название: Re: QSqlQuery дублирование записей при вставке
Отправлено: BuRn от Май 16, 2013, 11:49
Ну, например, с тем, что конструктор вызывается два раза...
вынес из конструктора, сделал отдельный метод createOrder, который делает тоже самое что и конструктор, из конструктора удалил эти 2 строки, ситуация аналогичная


Название: Re: QSqlQuery дублирование записей при вставке
Отправлено: LEO от Май 16, 2013, 12:32
Что за БД, скинь что нить компиляберное, а то так гадать только???


Название: Re: QSqlQuery дублирование записей при вставке
Отправлено: mta88 от Май 16, 2013, 12:34
если в конструкторе QSqlQuery есть непустая строка, то она выполняется
это прямым текстом в документации сказано

то есть ваша строка в самом деле выполняется 2 раза


Название: Re: QSqlQuery дублирование записей при вставке
Отправлено: BuRn от Май 16, 2013, 13:00
если в конструкторе QSqlQuery есть непустая строка, то она выполняется
это прямым текстом в документации сказано

то есть ваша строка в самом деле выполняется 2 раза
Истинно, спасибо, проблема решена


Название: Re: QSqlQuery дублирование записей при вставке
Отправлено: Serr500 от Май 16, 2013, 13:18
если в конструкторе QSqlQuery есть непустая строка, то она выполняется
Не знал...  :(