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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как обратиться к отдельной ячейке таблицы БД  (Прочитано 3815 раз)
hank
Гость
« : Февраль 08, 2011, 17:22 »

Здравствуйте.

Попробую обрисовать возникшую трудность. В Visual Studio я следующим образом использовал функции из стандартных библиотек, идущих в комплекте с PostgreSQL для вывода на экран содержимого конкретной ячейки таблицы БД:
Код:
PGconn     *conn;
conn = PQconnectdb(conninfo);

PGresult   *res;
res = PQexec(conn, "SELECT * FROM test");

printf("%15s ",PQgetvalue(res,i,j));

где i и j изменялись в пределах от нуля до соответственно PQntuples(res) и PQnfields(res).

Я хочу добиться схожего функционала в Qt, используя классы QSqlQueryModel, QSqlQuery и т.п. Пока я умею лишь выводить таблицу целиком через QSqlQueryModel.
В общем, вопрос: как мне реализовать доступ к определенной ячейке (интересует конкретно вывод содержимого на визуальные компоненты)?
« Последнее редактирование: Февраль 09, 2011, 11:49 от hank » Записан
shirushizo
Гость
« Ответ #1 : Февраль 08, 2011, 17:51 »

Я хочу добиться схожего функционала в Qt, используя классы QSqlQueryModel, QSqlQuery и т.п.
...

Для модели, используй методы:
Код:
QVariant QAbstractItemModel::data ( const QModelIndex & index, int role = Qt::DisplayRole ) const
QModelIndex QAbstractItemModel::index ( int row, int column, const QModelIndex & parent = QModelIndex() ) const
например, model->data(model->index(i,j));
i и j от 0 до model->rowCount() и model->columnCount(), соответственно.

Либо для запроса, методы:
Код:
bool QSqlQuery::seek ( int index, bool relative = false )
QVariant QSqlQuery::value ( int index ) const

...интересует конкретно вывод содержимого на визуальные компоненты...
дальше методами QVariant::toInt(), QVariant::toString() преобразуй к необходимому виду и заноси в элементы управления -
QLabel::setText(QString text), QLineEdit::setText(QString text)  и пр.

А если интересуют data-ориентированные формы, используй QDataWidgetMapper на соседнем сайте
Записан
hank
Гость
« Ответ #2 : Февраль 09, 2011, 11:41 »

Спасибо. Возьму на вооружение.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Февраль 09, 2011, 21:03 »

>>интересует конкретно вывод содержимого на визуальные компоненты
Глянь на QDataWidgetMaper
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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