crossplatform.ru

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

> Запрос вставки, с помощью QSqlQuery
AD
  опции профиля:
сообщение 28.3.2011, 11:12
Сообщение #1


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Есть запросы вставки записи в таблицу, подобные данной:
QSqlQuery query(QSqlDatabase::database("conn_1"));
query.prepare(QString("insert into ScriptLayer(ScriptItemId, LayerNameId) values(%1, -1)").arg(id));
bool ins = query.exec();
Проверяю. ins = true. При этом в саму таблицу ничего не добавилось. Как такое возможно? Естественно, что при закрытии приложения никаких удалений не делаю.

Сообщение отредактировал AD - 28.3.2011, 11:12
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
MoPDoBoPoT
  опции профиля:
сообщение 11.4.2011, 21:41
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

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




Репутация:   9  


Цитата(QtAssistant)
bool QSqlQuery::isActive () const
...
Note: Of particular interest is an active query that is a SELECT statement. For some databases that support transactions, an active query that is a SELECT statement can cause a commit() or a rollback() to fail, so before committing or rolling back, you should make your active SELECT statement query inactive using one of the ways listed above.

Попробуй перед фиксацией транзакции для всех активных запросах вызвать clear()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 12.4.2011, 9:32
Сообщение #3


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Цитата(MoPDoBoPoT @ 11.4.2011, 22:41) *
Попробуй перед фиксацией транзакции для всех активных запросах вызвать clear()

Пробовал. Не помогает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 12.4.2011, 14:18
Сообщение #4


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


В результате долгих копаний. Кое-что смог выяснить. Исходя из этой статьи, выяснил, что БД SQLite может хранится в памяти, а может в файле. Вопрос. Как организовать правильное хранение в памяти? Т.е. что конкретно надо поменять в данном коде:
/// Функция для создания соединения с базой данных
bool createConnection(const QString& odbc_path)
{
    QSqlDatabase db(QSqlDatabase::database("conn_1"));
    if(db.isOpen()) db.close();

    db = QSqlDatabase::addDatabase("QSQLITE", "conn_1");
    db.setDatabaseName(odbc_path);

    if(!db.open())
    {
        QSqlError error(db.lastError());
        QMessageBox msg(QMessageBox::Critical, "Connections", error.text(), QMessageBox::Ok, 0);
        msg.exec();
        return false;
    }
    return true;
}

Куда это ":in_memory:" добавить? Ну и попутный вопрос к ViGOur: помнится где-то была статья и сборке плагина без сборки всего Qt. Дайте, пожалуйста, ссылку на эту статью. Заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- AD   Запрос вставки   28.3.2011, 11:12
- - BRE   А если в программе sqlbrowser попробовать добавить...   28.3.2011, 12:11
|- - AD   Цитата(BRE @ 28.3.2011, 13:11) А если в п...   28.3.2011, 12:42
- - MJIbIu   Цитата(AD @ 28.3.2011, 11:12) query.prepa...   28.3.2011, 15:18
|- - AD   Цитата(MJIbIu @ 28.3.2011, 16:18) А попро...   28.3.2011, 15:40
|- - MJIbIu   Цитата(AD @ 28.3.2011, 15:40) Цитата(MJIb...   28.3.2011, 15:52
|- - AD   Цитата(MJIbIu @ 28.3.2011, 16:52) query.p...   28.3.2011, 16:36
|- - MJIbIu   Цитата(AD @ 28.3.2011, 17:36) При добавле...   28.3.2011, 17:03
|- - AD   Цитата(MJIbIu @ 28.3.2011, 18:03) http://...   29.3.2011, 11:24
|- - AD   Буду рад, если поможете. Не понимаю, как сделать п...   29.3.2011, 15:17
|- - AD   Неужели ни у кого не было подобной проблемы при ра...   30.3.2011, 11:01
|- - MJIbIu   Цитата(AD @ 29.3.2011, 16:17) Буду рад, е...   30.3.2011, 13:07
|- - AD   Цитата(MJIbIu @ 30.3.2011, 14:07) bool QS...   30.3.2011, 13:26
|- - AD   Вернулся к СУБД Paradox. Решение на данную проблем...   31.3.2011, 11:38
|- - AD   В связи с тем, что скорость работы на Paradox мале...   11.4.2011, 9:22
- - MoPDoBoPoT   Цитата(QtAssistant)bool QSqlQuery::isActive () con...   11.4.2011, 21:41
|- - AD   Цитата(MoPDoBoPoT @ 11.4.2011, 22:41) Поп...   12.4.2011, 9:32
|- - AD   В результате долгих копаний. Кое-что смог выяснить...   12.4.2011, 14:18
- - MoPDoBoPoT   Цитата(AD @ 12.4.2011, 10:32) Пробовал. Н...   12.4.2011, 21:19
|- - AD   Цитата(MoPDoBoPoT @ 12.4.2011, 22:19) Воз...   13.4.2011, 9:32
|- - AD   Либо я чего-то не понял, либо еще что-то, но загру...   14.4.2011, 10:38
- - MoPDoBoPoT   Цитата(AD @ 14.4.2011, 11:38) Либо я чего...   14.4.2011, 21:49
|- - AD   Цитата(MoPDoBoPoT @ 14.4.2011, 22:49) Есл...   18.4.2011, 9:07
- - MoPDoBoPoT   Странно. Блокировку можно получить, когда в рамках...   19.4.2011, 21:29
|- - AD   Цитата(MoPDoBoPoT @ 19.4.2011, 22:29) Стр...   21.4.2011, 9:19
|- - AD   О. Все-таки каких-то результатов удалось добиться....   21.4.2011, 17:01
|- - AD   Проблема решена. Дело вот в чем. Моя модель SqlFil...   22.4.2011, 13:59
- - MoPDoBoPoT   Цитата(AD @ 22.4.2011, 14:59) она блокиру...   22.4.2011, 21:09
- - AD   Цитата(MoPDoBoPoT @ 22.4.2011, 22:09) В с...   22.4.2011, 23:08


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


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




RSS Текстовая версия Сейчас: 9.12.2022, 10:03