Russian Qt Forum

Qt => Базы данных => Тема начата: Kuper от Октябрь 19, 2010, 11:15



Название: Созданный на ПК в эмуляторе файл БД Sqlite не открывается на смартфоне
Отправлено: Kuper от Октябрь 19, 2010, 11:15
Здравствуйте.

Предыстория:
1. Создал БД в эмуляторе на ПК.
2. Заполнил ее.
3. На эмуляторе работаю с этим файлом без проблем, все хорошо.

Проблема:
Подкладываю файл на смартфон - получаю ошибку: unable to open database file Error opening database

Код:
Код:
bool DataBase::OpenDB(QString DBPath)
{
    QFile File(DBPath);
    if (File.exists())
    {
        try
        {
            DB = QSqlDatabase::addDatabase("QSQLITE", "LocalConnection");
            DB.setDatabaseName(DBPath);
            if (DB.open())
            {
                return true;
            }
            else
            {
                QMessageBox::critical(0, "Critical", tr("База данных не открыта!!!\n") + DB.lastError().text());
            }
        }
        catch (...)
        {
            QMessageBox::critical(0, "Critical", tr("Ошибка при открытии базы данных!!!\n") + DB.lastError().text());
        }
    }
    else
    {
        QMessageBox::critical(0, "Critical", tr("Не найден файл базы данных!!!\n") + DB.lastError().text());
    }
    return false;
}

Подскажите в каком направлении копать? Спасибо

PS Qt Creator 2.0.0, Qt 4.7.0
PSS Пишу под symbian 9.4 (Nokia 5800 xm)


Название: Re: Созданный на ПК в эмуляторе файл БД Sqlite не открывается на смартфоне
Отправлено: Admin от Октябрь 19, 2010, 12:45
первое что пришло на ум
1) есть sqlite 2.0 и sqlite3.0 - версии у вас совпадают?
2) откройте файлик сторонней программой  - типа плагина для firefox


Название: Re: Созданный на ПК в эмуляторе файл БД Sqlite не открывается на смартфоне
Отправлено: Kuper от Октябрь 19, 2010, 13:31
первое что пришло на ум
1) есть sqlite 2.0 и sqlite3.0 - версии у вас совпадают?
2) откройте файлик сторонней программой  - типа плагина для firefox

1) Да, версии одинаковые, все ставилось с одного установочного пакета Nokia Qt SDK
2) Открыл и выполнил селект в SQLite manager 3.5.1 - все замечательно
 
Вспомнил еще один странный факт. Как то раньше не удавалось создать базу по конкретному пути на смартфоне. Не помню уже какая была ошибка. Если просто указываешь имя, то база создавалась, но не известно где. Проходил поиском по телефону и флешкарте, но ничего не находил (ось не взломанная, половина системных папок скрыто).

Это какая то очередная фишка symbian???

А вот и пример на эту тему:
http://wiki.forum.nokia.com/index.php/CS001505_-_Creating_a_database_table_in_Qt
"// NOTE: File exists in the application private folder, in Symbian Qt implementation"
Это необходимое условие???


Название: Re: Созданный на ПК в эмуляторе файл БД Sqlite не открывается на смартфоне
Отправлено: bs от Ноябрь 01, 2010, 20:54
Та же проблема, не открывает базу, решение появилось?

Я так понял, он открывает только базы, которые находятся в QDir::homePath(), как правило это память телефона, а впихнуть базу туда я не могу, она неслабо весит. А с другого диска не хочет открывать по непонятным причинам =(