Qt, Базы данных

Добавление данных запроса в таблицу QTableWidget

Здесь: Добавление данных в таблицу QTableWidget. Очистка таблицы — я рассказала, как заполнить таблицу QTableWidget данными из объекта QMap. Можно сказать, через годы и расстояния :), я решила чуть больше развернуть эту тему и показать, как организовать добавление данных запроса в таблицу. Для тех, кому по какой-то причине нужно использовать объект QTableWidget вместо QTableView. Продолжить чтение «Добавление данных запроса в таблицу QTableWidget»

Microsoft SQL Server, Qt

QSqlQuery::numRowsAffected(), QSqlQuery::size() и MS SQL Server

Для получения количества обработанных записей запросом (insert, update, delete) в Qt используют функцию numRowsAffected(), а для получения размера выборки — size() объекта QSqlQuery:

QSqlQuery query;
if (!query.exec("delete from people where age < 20")) {
	qDebug() << "error:" << query.lastError()->text();
	return;
}
qDebug() << "rows count" << query.numRowsAffected();
numRowsAffected()
QSqlQuery query;
if (!query.exec("select * from people where age < 35")) {
	qDebug() << "error:" << query.lastError()->text();
	return;
}
qDebug() << "rows count" << query.size();
size()

Но не все СУБД поддерживают эту функцию. Например, SQLite и, о Боже! — Microsoft SQL Server (как не стыдно!). Проверить поддержку данной функции (а заодно и функции QSqlQuery::size()) можно так:

qDebug() << database.driver()->hasFeature(QSqlDriver::QuerySize);

где database — объект подключения к базе данных QSqlDatabase. Если в выводе приложения вы увидите false, то прогноз пессимистичен.

Что делать в этом случае?

Продолжить чтение «QSqlQuery::numRowsAffected(), QSqlQuery::size() и MS SQL Server»