crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> firebird, insert возвращает ошибку -1, строку вставляет
gvenihvivar
  опции профиля:
сообщение 14.5.2015, 15:13
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 36
Регистрация: 6.11.2013
Пользователь №: 3967

Спасибо сказали: 0 раз(а)




Репутация:   0  


qt sdk 4.8
firebird 2.5 и ibexpert

Создала базу данных и таблицу. Вставляя строки программно обратила внимание, что insert возвращает постоянно false, а строки вставляются исправно. К базе данных подключилось нормально. Команды update, delete, select работают правильно. Вот так выглядит запрос.
Оба поля int. id primary key.

QSqlQuery query2("INSERT INTO table2 (id, pump) VALUES ('2', '2')", db);
       qDebug() << " exec insert "<< query2.exec()
                     <<  " error "<< query2.lastError().text() << query2.lastError().number();


Кто-то сталкивался с таким? Может, это просто баг?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
lanz
  опции профиля:
сообщение 15.5.2015, 9:12
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Возможно дело в том, что:
http://doc.qt.io/qt-4.8/qsqlquery.html#QSqlQuery-2
Цитата
Constructs a QSqlQuery object using the SQL query and the database db. If db is not specified, or is invalid, the application's default database is used. If query is not an empty string, it will be executed.

А затем ваш exec пытается вставить второй элемент с таким же id. Попробуйте использовать prepare.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.11.2024, 11:08