Russian Qt Forum
Сентябрь 30, 2024, 16:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: как узнать значение id таблицы БД из tableveiw  (Прочитано 3144 раз)
ultimatet41
Гость
« : Ноябрь 11, 2011, 19:52 »

Здравствуйте. У меня возник следующий вопрос как мне узнать id строки таблицы бд из tabelview, сейчас поясню, имеется следующий код

 
Код:
tbModel->setTable("providers");
    tbModel->select();

    ui->providersTv->setModel(tbModel);
мне нужно в дальнейшем получить id строки таблицы providers из tabelveiw для формирования например такого вида запроса

Код:
UPDATE providers SET provider_name = '1111' WHERE provider_id= id выделенной строки 
Записан
ultimatet41
Гость
« Ответ #1 : Ноябрь 11, 2011, 21:15 »

Разобрался сам, кому интересно как смотрите код ниже

 
Код:
   QVariant myData; 
    QModelIndex myIndex;
    myIndex =ui->providersTv->model()->index( ui->providersTv->currentIndex().row(), 0, QModelIndex());
    myData = ui->providersTv->model()->data( myIndex, Qt::DisplayRole);
    QString id=myData.toString();
    QString str="UPDATE providers SET provider_name = 'test' WHERE provider_id="+id+";";
    QSqlQuery sql;
    sql.exec(str);
Записан
Странник
Гость
« Ответ #2 : Ноябрь 11, 2011, 22:34 »

Код:
int id = ui->providersTv->model()->index(ui->providersTv->currentIndex().row(), 0).data().toInt();

QSqlQuery sqlQuery;
sqlQuery.prepare("UPDATE providers SET provider_name=? WHERE provider_id=?");
sqlQuery.addBindValue(QString("test"));
sqlQuery.addBindValue(id);
sqlQuery.exec();
можно для определения первичного ключа QSqlDatabase::primaryIndex(const QString &tableName) использовать, но по-моему не все драйверы поддерживают.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.187 секунд. Запросов: 21.