Проблема/ошибка возникает если экземпляр базы данных передается в (конструктор) так или иначе метода QSqlQuery раньше чем база данных была открыта;
Пример Ошибки :
m_qSqlBase = QSqlDatabase::addDatabase("QSQLITE");
m_qSqlBase.setDatabaseName("real.db");
//Проблемное место.
QSqlQuery qSqlQuery(m_qSqlBase);
if(m_qSqlBase.open())
{
if(!qSqlQuery.exec("CREATE TABLE IF NOT EXISTS ...");
//Появится ошибка при вызове метода exec экземпляра QSqlQuery}
Решение :
m_qSqlBase = QSqlDatabase::addDatabase("QSQLITE");m_qSqlBase.setDatabaseName("real.db");if(m_qSqlBase.open()){QSqlQuery qSqlQuery(m_qSqlBase);if(!qSqlQuery.exec("CREATE TABLE IF NOT EXISTS ...");// Все окей можно продолжать работать.
}else//Невозможно открыть бд
Глазки совпали, однако ...
ОтветитьУдалитьМерси.