Название: QIBASE + транзакции, не возможно выполнить более одного раза Отправлено: lit-uriy от Март 19, 2010, 13:45 Наткнулся на проблему - не получается использовать транзакцию более одного раза при работе с Firebird 2.1 через QIBASE.
Мне нужно было осуществлять вставку данных, в разные таблицы, в одной транзакции. Напоровшись на проблему вынужден был написать тестовую программу, которая делает простую вставку в явной транзакции. Вот код: Код Этот код должен сделать 10 вставок в БД. Однако, делает только одну вставку, а дальше ошибки. Возможно я не правильно что-то делаю. Именно это я и хочу сейчас выяснить есть ли в моём коде ошибка или нет. Дополнительные подробности, результаты работы через другие драйверы, можно посмотреть тут (http://www.forum.crossplatform.ru/index.php?showtopic=4561&view=findpost&p=31825) Название: Re: QIBASE + транзакции, не возможно выполнить более одного раза Отправлено: Troglodit от Март 19, 2010, 14:48 imho это просто не понятно зачем использовать в этом случает QSqlTableModel?
QSqlQuery и prepare вам ускорит выполнение в разы. Название: Re: QIBASE + транзакции, не возможно выполнить более одного раза Отправлено: Zmeishe от Март 19, 2010, 15:23 Мне нужно было осуществлять вставку данных, в разные таблицы, в одной транзакции. Напоровшись на проблему вынужден был написать тестовую программу, которая делает простую вставку в явной транзакции. Этот код должен сделать 10 вставок в БД. Однако, делает только одну вставку, а дальше ошибки. В рамках одной транзакции. 1 .Старт транзакции 2. Цикл из 10 вставок 3. Подтверждение транзакции. В рамках 10 транзакций. 0. Цикл из 10 вставок 1. Старт транзакции 2. 1 Вставка. 3. Подтверждение транзакции. Разбираться не стал, т.к. тобой не представлены описания ошибок, которые возникают. Похоже идёт старт транзакции вставка подтверждение транзакции снова вставка, но уже без старта транзакции Название: Re: QIBASE + транзакции, не возможно выполнить более одного раза Отправлено: lit-uriy от Март 19, 2010, 17:02 imho это просто не понятно зачем использовать в этом случает QSqlTableModel? если читать тему внимательно, то всё понятно:QSqlQuery и prepare вам ускорит выполнение в разы. Напоровшись на проблему вынужден был написать тестовую программу, которая делает простую вставку в явной транзакции. т.к. тобой не представлены описания ошибок, которые возникают. я указал ссылку, чтобы множественным копипастом не заниматься:Дополнительные подробности, результаты работы через другие драйверы, можно посмотреть тут (http://www.forum.crossplatform.ru/index.php?showtopic=4561&view=findpost&p=31825) Название: Re: QIBASE + транзакции, не возможно выполнить более одного раза Отправлено: lit-uriy от Март 21, 2010, 00:52 Продолжаю раскопки.
Засунув в драйвер QIBASE кучу отладки, на сегодня, выяснил только одну вещь: Старт транзакции происходит всякий раз, с новым номером транзакции. Но, почему-то сама запись в базу (второй и последующие разы) происходит с номером транзакции, который был у первой транзакции Название: Re: QIBASE + транзакции, не возможно выполнить более одного раза Отправлено: gigabyte от Март 26, 2010, 21:46 попробуй перейти на QFirebirdsql
Название: Re: QIBASE + транзакции, не возможно выполнить более одного раза Отправлено: lit-uriy от Март 27, 2010, 01:39 >>попробуй перейти на QFirebirdsql
пробовал (http://www.forum.crossplatform.ru/index.php?showtopic=4561) |