QT SQLite не работает во встроенном устройстве - PullRequest
2 голосов
/ 25 мая 2011

Я использую QT Framework.По сути, я создаю приложение для устройств ARM.

Теперь я создал пример приложения, использующего SQLite для работы с БД.Дело в том, что один работает на моем рабочем столе, но когда я кросс-скомпилировал его для устройства и попытался выполнить его на своем устройстве. Ошибка при получении.

Итак, я записал несколько сообщений об ошибках.Наконец я обнаружил, что файл БД был успешно создан, но не удалось создать таблицу на устройстве.

Это из-за нехватки памяти?

Код:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("songs.db");
    if (!db.open()) {
        QMessageBox::critical(0, qApp->tr("Cannot open database"),
            qApp->tr("Unable to establish a database connection.\n"
                     "This example needs SQLite support. Please read "
                     "the Qt SQL driver documentation for information how "
                     "to build it.\n\n"
                     "Click Cancel to exit."), QMessageBox::Cancel);
        //return false;

debugLog("#fileListThread::run()-> Unable to establish a database connection.."<<db.lastError(););
                }
else
{
    debugLog("#fileListThread::run()-> opened songs.db successfully..");
}

QSqlQuery query;


bool queryStatus = query.exec("create table songsList (id int primary key, "
           "Song varchar(20), Artist varchar(20),Producer varchar(20))");

if(queryStatus)
{
    debugLog("#fileListThread::run()-> created table in songs DB successfully..");
}
else
{
    debugLog("#fileListThread::run()-> failed to create table in songs DB.."<<query.lastError(););
}

Хорошо!Еще один быстрый вопрос-> Возможно ли создать файл БД и выполнять запросы внутри встроенных устройств.В моем устройстве свободная память составляет 9 МБ.

Спасибо, Вишну

1 Ответ

0 голосов
/ 25 мая 2011

Я думаю, вы должны использовать

CREATE TABLE IF NOT EXISTS songsList

SQL заявление, а не

create table songsList

В противном случае после создания таблицы при второй попытке ее выполнения может появиться ошибка.

Кроме этого, я не вижу проблемы, но кто знает ... Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...