Название: как узнать значение id таблицы БД из tableveiw
Отправлено: 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 выделенной строки
Название: Re: как узнать значение id таблицы БД из tableveiw
Отправлено: ultimatet41 от Ноябрь 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);
Название: Re: как узнать значение id таблицы БД из tableveiw
Отправлено: Странник от Ноябрь 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) использовать, но по-моему не все драйверы поддерживают.
|