crossplatform.ru

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

Гость_Рядовой Смирнов_*
сообщение 8.1.2014, 4:09
Сообщение #1





Гости








    


Доброго времени суток всем. Люди, прошу помощи, так как уже битый час ломаю голову над одной штукой с БД в qt.
Не получается организовать редактирование записей таблицы. Я на этом форму впервые, вот кусочек кода, именно который отвечает за редактирование:
void MainWindow::on_pushButton_16_clicked()
{
QString str = ui->lineEdit_35->text();
QString str_1 = ui->lineEdit_36->text();
QString str_2 = QString("'") + ui->lineEdit_37->text() + QString("'");
QString str_3 = ui->lineEdit_38->text();
QString str_4 = ui->lineEdit_39->text();
QString str_5 = ui->lineEdit_40->text();

open_base();
QSqlQuery query;
query.exec(QString("UPDATE Priem_Pacientov SET FIO_p = ") + str_1 + QString(", Date = ") + str_2 + QString(", Name_b = ") + str_4 + QString(", dni_bolnich = ") + str_5 + QString(" WHERE (id_p = ") + str + QString(") and (id_v = ") + str_3 + QString(");"));
sdb.close();
ui->lineEdit_35->setText("");
ui->lineEdit_36->setText("");
ui->lineEdit_37->setText("");
ui->lineEdit_38->setText("");
ui->lineEdit_39->setText("");
ui->lineEdit_40->setText("");
on_pushButton_2_clicked();
}

Если кто-нибудь сможет мне объяснить в чем моя ошибка, буду очень благодарен.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
arial
  опции профиля:
сообщение 8.1.2014, 21:26
Сообщение #2


Студент
*

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

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




Репутация:   0  


Действительно, код весьма странный.
Делай примерно так:

    // Создаёшь запрос
    QSqlQuery query(database);

    // Здесь пишешь текст запроса.
    // Вместо значений полей в запросе ставишь знак вопроса
    const QString queryText = QLatin1String("UPDATE table SET some_field = ? "
                                            "WHERE condition_field = ?");

    // Подготавливаешь запрос
    if (!query.prepare(queryText)) {
        qDebug() << trUtf8("Здесь увидишь ошибку в запросе: %1").arg(query.lastError().text());
        return;
    }

    // Здесь добавляешь все переменные, участвующие в запросе
    // в том же порядке, в каком они следуют в запросе (те самые знаки вопроса)
    query.addBindValue(someFieldValue);
    query.addBindValue(conditionFieldValue);

    // Отправляешь запрос в базу данных
    if (!query.exec()) {
        qDebug() << trUtf8("Здесь тоже увидишь ошибку в запросе: %1").arg(query.lastError().text());
        return;
    }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 15.5.2025, 0:19