пятница, 30 января 2015 г.

QT Sqlite Error Create Table Out Of Memory Unable to execute statement.

Проблема/ошибка возникает если экземпляр базы данных передается в (конструктор) так или иначе метода 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 
//Невозможно открыть бд


1 комментарий: