Пишу программу с использованием Qt4 и модуля QtSql, но возникла проблема. У меня есть класс:
Код:
class DatabaseCenter : public QSqlDatabase
{
public:
DatabaseCenter(const QSqlDatabase& database);
private:
QSqlQuery *query;
};
DatabaseCenter::DatabaseCenter(const QSqlDatabase& database) : QSqlDatabase(database) {
setHostName("localhost");
setUserName("MyUserName");
setPassword("IMP");
query = new QSqlQuery(*this);
}
bool DatabaseCenter::setDatabasePath(const QString& path) {
qDebug() << "[DatabaseCenter] Database path became " << path;
QDir::setCurrent(QFileInfo(path).absolutePath());
setDatabaseName(QFileInfo(path).fileName());
if (open()) {
qDebug() << "[DatabaseCenter] Database was opened";
query->exec(QString("CREATE TABLE IF NOT EXISTS main(`word` TEXT NOT NULL,`translation` TEXT NOT NULL,`status` INTEGER(1) NOT NULL, UNIQUE (`word`))"));
if (!query->isValid())
qDebug() << "[DatabaseCenter] Cannot create table, because: " << query->lastError().text();
return true;
}
qDebug() << "[DatabaseCenter] Database wasn't opened, because: " << lastError().text();
return false;
}
Когда я вызываю функцию setDatabasePath() БД создаётся и открывается как надо, но вот запрос создания таблицы не работает. Вот Debug сообщения:
[DatabaseCenter] Database path became "/home/assuri/.LilEditor/tikser.en-ru"
[DatabaseCenter] Database was opened
[DatabaseCenter] Cannot create table, because: "out of memory Unable to execute statement"
Честно говоря я даже и не знаю что может означать данная ошибка, поэтому прошу помощи. Спасибо.