|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.11.2013, 12:40 | #1 |
Пользователь
Регистрация: 01.11.2013
Сообщений: 34
|
запись данных одной транзакцией
Здравствуйте,
сразу к сути вопроса firebird, FIBPlus выполняется парсинг файла. определенные данные записываются в несколько таблиц базы данных, записываются через хп (qoStartTransaction = true, qoAutoCommit = true), как правило за один раз хп делает одну запись. всего записей 2000-3000. данный вариант работает замечательно, но решил выполнить запись данных одной транзакцией, поскольку "не надо делать commit после каждой записи" параметры хп qoStartTransaction и qoAutoCommit поменял на false Код:
но в таблицах этих записей нет, пока не закрою саму программу. что я не учел? |
27.11.2013, 12:55 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
tr1 точно участвует в записи? Я не спец по FIBPlus конечно, но мало ли...
Имеется ввиду что сам tr1.Commit; не выполняется или не влияет вовсе на запись.
I'm learning to live...
|
27.11.2013, 13:07 | #3 |
Пользователь
Регистрация: 01.11.2013
Сообщений: 34
|
да
приведенный код выше аналогичен... Код:
Последний раз редактировалось water_; 27.11.2013 в 13:17. |
27.11.2013, 13:37 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Даже не знаю...
I'm learning to live...
|
27.11.2013, 13:54 | #5 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
мало кода.
|
27.11.2013, 14:37 | #6 |
Пользователь
Регистрация: 01.11.2013
Сообщений: 34
|
повторю, данные в БД записываются, тому подтверждение значение генераторов и, собственно, самих данных, которые записываются в БД, но только после закрытия приложения.
пример одной записи в одну из таблиц, в приложении Код:
Код:
Последний раз редактировалось water_; 27.11.2013 в 14:46. |
27.11.2013, 14:45 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Такое бывает, когда COMMIT выполняется при закрытии приложения, а до этого нет.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.11.2013, 14:47 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Да, но в коде у автора есть коммит транзакции.
Может коммитить нужно не только транзакцию?
I'm learning to live...
|
28.11.2013, 08:23 | #9 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
Код:
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
29.11.2013, 13:10 | #10 |
Пользователь
Регистрация: 01.11.2013
Сообщений: 34
|
действительно,
как выяснилось проблема даже не касалась fib в процедуре использовался класс, методы которого и вызывали хп базы данных, так вот, Код:
Код:
всем спасибо, топик можно закрывать (надеюсь кому-нибудь он будет полезен) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы с транзакцией | Alek-de-Mik | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 1 | 18.01.2013 14:16 |
Запись данных с одной таблицы в другую | timedo | PHP | 9 | 10.11.2012 11:21 |
Проблема с транзакцией | semak777 | БД в Delphi | 5 | 26.02.2012 12:15 |
Как при вводе данных на одной форме - добавить запись на двух связанных таблицах? | маврик | Microsoft Office Access | 13 | 05.11.2009 10:40 |
Передача данных из одной таблицы в другую, при выборе одной ячейки | MickMick | Microsoft Office Excel | 6 | 06.10.2008 13:57 |