crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

berserk
  опции профиля:
сообщение 22.4.2014, 12:39
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.2.2009
Пользователь №: 540

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем привет!
Есть БД на SQLITE, лежит на ntfs, OS Windows. Заметил струнную вещь.
Если мною написанную программу запустить 2 раза, то писать в любую таблицу базы может только первая. Второй экземпляр программы создаёт журнал, но накатить его не может.
Вроде бы логично. NTFS - блокировки...
Но те же действия работают в Sqliteman. Т.е. Если его запустить его 2 раза и подключить один файл базы, то можно поочерёдно писать в одну и туже таблицу.
Хотя первый экземпляр так же блокирует базу.

Либо я что то не то написал в своей программе, либо у sqliteman хитрый способ какой то.
Кто знает объясните...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 22.4.2014, 13:15
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


телепатов нет. кода никто не видел.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
berserk
  опции профиля:
сообщение 22.4.2014, 14:10
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.2.2009
Пользователь №: 540

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Iron Bug @ 22.4.2014, 14:15) *
телепатов нет. кода никто не видел.


Запускаю программу...

Открываю соединение с базой
db = new QSqlDatabase;
*db = QSqlDatabase::addDatabase("QSQLITE");
    db->setDatabaseName(QApplication::applicationDirPath()+"/database.db");
    if (!db->open())
    {
        QString error_db = db->lastError().text();
        QMessageBox::critical(this, "error", error_db);
        db->close();
        exit(1);
        return false;
    }
query = new QSqlQuery;


Гдето в коде


query->prepare("INSERT INTO firm (id, value)"
                            "VALUES (?, ?)");
    query->addBindValue(ui->lineEdit_id->text());
    query->addBindValue(ui->lineEdit_value->text());
    query->exec();
    query->clear();


Перед закрытием программы
db->close();


как то так.

Сообщение отредактировал berserk - 22.4.2014, 14:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 15.7.2025, 13:47