Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] QSqlQuery ошибка добавления


Автор: ecspertiza 19.1.2009, 10:57
Граждане программисты помдскажите плз, есть код
Код

    QString num;
    num.setNum(ObjectId);

    QSqlQuery query2;
    QString str = "select ID,OBJECT_ID,PRICE_SOURCE_ID,MARKS,Table_Price."VALUES",PRICE_SOURCE_NAME,CURRENCY_NAME,CURRENCY_ID from Table_Price where Object_Id="+num;
    if(!query2.exec(str))
        QMessageBox::critical(this,tr("Error"),tr("Bad one query")+query2.lastError().text());
    
    QSqlQuery query;
    while (query2.next()) 
    {
        query.prepare("execute procedure INSERT_EDIT_PRICE ?,?,?,?,?,?");
        query.addBindValue(query2.value(3).toString());
        query.addBindValue(query2.value(4).toDouble());
        query.addBindValue(query2.value(2).toInt());
        query.addBindValue(query2.value(7).toInt());
        query.addBindValue(query2.value(5).toString());
        query.addBindValue(query2.value(6).toString());
        if (!query.exec())
            QMessageBox::critical(this,"Error","Error load price "+query.lastError().text());
        else
            QMessageBox::information(this,"Good","Good query");
    }


на мой взгляд обсалютно ровный, при выполнении программы вылетает сообщение "Good", которое говарит о том что запрос выполнен, но однако записи не добавляются в БД, использую Firebird2.1, в чём может быть косяк? в остальных процедурах вроде добавление работает нормально.

Автор: Elfebet 19.1.2009, 11:53
в твоем посте не видно что добавляется. Я к тому что знак '*' нежелательно использовать, пропиши название полей, а то непонятно, может в этом и есть ошибка

Автор: ecspertiza 19.1.2009, 12:00
вот прописал, может это из за транзакций? вся фишка в том что даже если параметры прописать руками, то всёравно добавлятся нехочет, и ощибок при этом никаких невыдаёт.

Автор: ecspertiza 19.1.2009, 12:41
Нашёл косяк, как обычно в кривых руках, дело в том что Edit_Price это временная таблица, и её нада очищать перед занрузкой формы, а потом загружать в неё параметры, я всё сделал наобарот вот она и была пустая, утро понедельника что тут скажешь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)