Проверить функциональность драйвера
Синтаксические правила
bool QSqlDriver::hasFeature(< параметр >); < параметр >::= идентификатор проверяемой функциональности
(элемент перечисления QSqlDriver::DriverFeature
в таблице 1)
Таблица 1. Список доступных для проверки функциональных возможностей драйвера
Элемент перечисления QSqlDriver::DriverFeature | Результат проверки | Описание |
---|---|---|
QSqlDriver::Transactions | true | Поддержка SQL транзакций, т.е. поддерживаются методы: QSqlDatabase::transaction(); QSqlDatabase::commit(); QSqlDatabase::rollback() |
QSqlDriver::QuerySize | true | Поддержка получения информации о результате выполнения запроса, т.е. поддержка методов: QSqlQuery::size() – возвращает количество записей в выборке данных, QSqlQuery::numRowsAffected()) – возвращает количество реально добавленных, измененных или удаленных записей при выполнении операции insert, update, delete |
QSqlDriver::BLOB | false | Автоматическая загрузка BLOB-данных в оперативную память не поддерживается. Работа с BLOB-данными должна выполняться только с помощью эксклюзивных методов QtLinter-драйвера (см. раздел Работа с BLOB-данными) |
QSqlDriver::Unicode | false | Поддержка драйвером данных в Unicode-кодировке при работе с СУБД, которые не поддерживают Unicode-кодировку. Т.к. СУБД ЛИНТЕР поддерживает Unicode-кодировку, то данная функциональная возможность драйвера не требуется |
QSqlDriver::PreparedQueries | true | Поддержка использования претранслированных запросов |
QSqlDriver::NamedPlaceholders | true | Поддержка именованных контейнеров (placeholder), заполняемых значениями именованных параметров претранслированного запроса |
QSqlDriver::PositionalPlaceholders | true | Поддержка именованных контейнеров (placeholder), заполняемых значениями неименованных (позиционных) параметров претранслированного запроса |
QSqlDriver::LastInsertId | true | Поддержка предоставления информации о номере последней обработанной записи, т.е. поддержка метода QVariant QSqlQuery::lastInsertId() |
QSqlDriver::BatchOperations | true | Поддержка выполнения нескольких операций в виде пакета |
QSqlDriver::SimpleLocking | false | Поддержка запрета на запись в таблицу во время чтения из неё данных |
QSqlDriver::LowPrecisionNumbers | false | Поддержка выборки численных значений с низкой точностью на уровне драйвера. В СУБД ЛИНТЕР точность значений обеспечивается непосредственно ядром СУБД с помощью указания соответствующего типа данных, поэтому данная функциональность не требуется |
QSqlDriver::EventNotifications | false | Поддержка уведомлений СУБД о событиях при обработке данных |
QSqlDriver::FinishQuery | false | Поддержка выполнения низкоуровневого освобождения ресурсов при вызове QSqlQuery::finish() |
QSqlDriver::MultipleResultSets | false | Поддержка доступа к результирующим наборам данных, возвращаемым из пакетных операторов или хранимых процедур |
Описание
Предоставляет информацию о поддержке драйвером QtLinter запрошенной функциональной возможности (метод статический).
Возвращаемое значение
Логическое значение:
-
true
– драйвер поддерживает проверяемую функциональную возможность; -
false
– задана проверка неизвестной функциональной возможности, или проверяемая функциональная возможность не поддерживается.
Пример
QSqlDatabase db = QSqlDatabase::addDatabase( "QLINTER" ); db.driver()- >hasFeature(QSqlDriver::Transactions); db.driver()- >hasFeature(QSqlDriver::QuerySize); db.driver()- >hasFeature(QSqlDriver::BLOB); db.driver()- >hasFeature(QSqlDriver::Unicode); db.driver()- >hasFeature(QSqlDriver::PreparedQueries);