Последнее обновление:
July 15, 2017

Есть мысль... Жми, напиши!
Что имеем: Постов : 166 Авторов: 1 Категорий: 37

QT QSqlQuery количество записей

Возникла проблема определения количества записей, например [cc lang=»c++»] QSqlQuery * query=new QSqlQuery(«SELECT * FROM posts»); [/cc] По идее, количество можно получить так:

[cce lang=»c++»]qDebug()<<size();[/cce]

Но, это свойство может не поддерживается ODBC, например для SQLite и всегда будет возвращать -1 сцуко.

Решение:

[cce lang=»c++»] query->last();
qDebug()<<at()
[/cce]

Не забудьте потом вернуть индекс в начало query->first();

Работает для всех sql.

Views :

2318

Qt QXmlQuery

Небольшой примерчик как работать с QXmlQuery
Пример xml файла для парсинга:
[cce lang=»xml»] < ?xml version="1.0" encoding="utf-8"?>


141
Наши контакты

LOTS/contakt.png


…..

[/cc] Парсинг файла

Добавим в файл проекта (*.pro)
[cce lang=»c++»] QT += xmlpatterns
[/cc]

Ну и подключим либы:
[cce lang=»c++»] #include
#include
#include
#include
[/cc] [cce lang=»c++»] QFile file(«data.xml»);
if (!file.open(QIODevice::ReadOnly)) {
qDebug()<<«file not opened!»;< return; } QXmlQuery xmlQuery; xmlQuery.bindVariable("myDocument", &file); xmlQuery.setQuery("doc($myDocument)/root/lot[2]/description/string()"); //-- если не указать /string() то вернётся xml с тэгами if(!xmlQuery.isValid()) { qDebug()<<"xml not valid, syka"; return ; } //-- выводим результат QString res; xmlQuery.evaluateTo(&res); //-- приводим результат к строке qDebug()<<"RES:"<Наши контакты«;
QBuffer buffer( &byteArray );
buffer.open( QIODevice::ReadOnly );
xmlQuery.bindVariable(«myDocument», &buffer);
[/cc]

Views :

3497