Название: QTableview Отправлено: NIKA от Сентябрь 06, 2012, 09:50 Всем привет!В Qt новичок. Вот появился вопрос-как мне по имеющемуся номеру участка num вытащить его id из базы?
Название: Re: QTableview Отправлено: mutineer от Сентябрь 06, 2012, 09:57 Вероятно при помощи SQL-запроса и класса QSqlQuery
Название: Re: QTableview Отправлено: NIKA от Сентябрь 06, 2012, 10:58 int id = "SELECT id FROM amnu WHERE num"=+num, где num получаю int num =ui->amnuPropertiesTableView->model()->data(indexcolumn).toInt(); Не хочет работать.Что-то с синтаксисом наверное. Посмотрите, пожалуйста!
Название: Re: QTableview Отправлено: mutineer от Сентябрь 06, 2012, 10:59 ага, синтаксис совсем не похож на C++ - инту присваивать строку это как-то странно
Название: Re: QTableview Отправлено: NIKA от Сентябрь 06, 2012, 11:01 int num = ui->amnuPropertiesTableView->model()->data(indexcolumn).toInt();
QString string = QVariant(num).toString(); qDebug()<<string; QString sqlFilter; sqlFilter = "SELECT id FROM amnu WHERE num ="+string; qDebug возвращает "458" "SELECT id FROM amnu WHERE num =458" сам номер а не его Id Название: Re: QTableview Отправлено: mutineer от Сентябрь 06, 2012, 11:03 А что еще ты ожидал видеть в qDebug(), если ты в него выводишь значение num? SQL-запрос составленный надо еще выполнить. Читай доку по QSqlQuery
Название: Re: QTableview Отправлено: NIKA от Сентябрь 06, 2012, 11:06 Спасибо! ;D
Название: Re: QTableview Отправлено: NIKA от Сентябрь 06, 2012, 11:21 Сделала так и все равно id выводит 0, но qDebug()<<query.exec(sqlFilter) равно true.Посмотрите, пожалуйста в чем ошибка, все утро уже парюсь.
QString string = QVariant(num).toString(); QSqlQuery query; QString sqlFilter; sqlFilter = "SELECT id FROM amnu WHERE num ="+string; if (!query.exec(sqlFilter)) { qDebug() << "Cannot open database:" << query.lastError(); }; qDebug()<<query.exec(sqlFilter); int id = QVariant(sqlFilter).toInt(); qDebug()<<id; Название: Re: QTableview Отправлено: mutineer от Сентябрь 06, 2012, 11:24 QVariant(sqlFilter).toInt(); - вот это строчка берет строку "SELECT id FROM amnu WHERE num =" и переводит в int. глупость. читай доку
Ну и два раза выполнять запрос бессмысленно Название: Re: QTableview Отправлено: NIKA от Сентябрь 06, 2012, 11:34 Я так понимаю, что запрос выполнился и теперь мне это значение надо получить. Но как, что то я не нашла. Next что ли?Подскажи, пожалуйста. :)
Название: Re: QTableview Отправлено: mutineer от Сентябрь 06, 2012, 11:35 В доке написано доходчиво и есть примеры
Название: Re: QTableview Отправлено: NIKA от Сентябрь 06, 2012, 11:46 Все, получилось! :D Спасибо большое за подсказки!!!
|