crossplatform.ru

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

> [РЕШЕНО] QSqlQuery::prepare, не выполняется UPDATE
bayah
  опции профиля:
сообщение 23.11.2009, 18:20
Сообщение #1


Студент
*

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

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




Репутация:   0  


Вот еще...)
Не пойму, почему не получается именно обновить?

void MainForm::on_Ok_d_clicked()
{

    int id = ui->tableView_d->model()->index(0,0).data(0).toInt();
    int num=0;
    bool find=false;
    while(id != 0){  //по циклу просматриваю все первые поля
        if(id==ui->code_d_d->text().toInt()){find=true; break;}
        num=num+1;
        id = ui->tableView_d->model()->index(num,0).data(0).toInt();
    }
    ui->label_name_d_d->setNum(id); //это я просто смотрю какой id - найден ли он. Он находится.
    QSqlQuery query;
    if(find==true)
    {
        query.prepare("UPDATE DIST SET CODE_D = :CODE_D, NAME_D = :NAME_D WHERE CODE_D = :CODE_D");
        query.bindValue(":CODE_D",id);
        query.bindValue(":NAME_D",ui->name_d_d->text());
        query.exec();
    }
    else //[b]добавление новой записи работает[/b]
    {
        query.prepare("INSERT INTO DIST (CODE_D, NAME_D) VALUES (:CODE_D, :NAME_D) ");
        query.bindValue(":CODE_D",ui->code_d_d->text().toInt());
        query.bindValue(":NAME_D",ui->name_d_d->text());
        query.exec();
    }
    Refresh();
}




Да вообще UPDATE не проходит банально

        query.prepare("UPDATE DIST SET CODE_D = :CODE_D, NAME_D = :NAME_D WHERE CODE_D = :CODE_D");
        query.bindValue(":CODE_D",10); //запись с CODE_D=10 естественно есть в таблице
        query.bindValue(":NAME_D",ui->name_d_d->text());
        query.exec();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 26.11.2009, 6:03
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(bayah @ 26.11.2009, 8:36) *
что такое плейсхолдер в примере ясно, а что это вообще такое?)
буквально - "заполнитель", символ подстановки, то вместо чего что-нибудь подставится, например:
Цитата
qmake myprofile.pro
подставте имя своего файла проекта вместо "myprofile.pro"


Пока ставлю "РЕШЕНО", но не закрываю.

bayah, как проверишь работоспособность, отпишись.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 25.11.2024, 2:17