|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.11.2013, 08:28 | #1 |
Форумчанин
Регистрация: 22.05.2007
Сообщений: 511
|
Транзакция
Как правильно сделать транзакцию?
Код:
Код:
|
21.11.2013, 08:55 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Похоже, что правильно в обоих случаях. Если те методы ZConnection делают то, что я думаю. Только во 2-ом случае Commit выполнял бы отдельным ExecSQL. И не в рамках общего try в обоих случаях. Обычно еще начало транзакции заворачиваю в отдельный try ... except. По хорошему и завершение завернуть в try, и при except остается только рвать соединение и вываливаться из проги поскольку экзотичная ситуация и не понятно как дальше проге жить.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.11.2013, 08:58 | #3 |
Форумчанин
Регистрация: 22.05.2007
Сообщений: 511
|
А если Qery создаются динамически или их несколько, то первый вариант подходит или нет?
|
21.11.2013, 09:34 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А какая разница? И в рамках одной транзакции несколько операций обновления и для разных таблиц. Транзакции в том числе именно для этого и предназначены
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.11.2013, 10:10 | #5 |
Форумчанин
Регистрация: 22.05.2007
Сообщений: 511
|
Спасибо. Тему можно закрыть.
|
21.11.2013, 10:18 | #6 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
зачем тут транзакции?
|
21.11.2013, 11:21 | #7 |
Форумчанин
Регистрация: 22.05.2007
Сообщений: 511
|
Потому что одновременно могут добавляться записи.
Бьюсь уже почти третью неделю с этой записью данных от весовых терминалов в базу MySQL. Сейчас с применением транзакций выскакивает ошибка |
21.11.2013, 11:24 | #8 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Цитата:
|
|
21.11.2013, 11:25 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Что значит одновременно - с разных потоков? И какая СУБД?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.11.2013, 11:42 | #10 |
Форумчанин
Регистрация: 22.05.2007
Сообщений: 511
|
Есть сервер который записывает данные от весовых терминалов в базу MySQL. В верхней части формы сервера есть DBGrid с местами установки весов. Каждая вкладка соответствует своему весовому терминалу. Подключение к весам и считывание осуществляется на каждой вкладке.
Чтобы было понятно прикладываю рисунок формы. Подключаюсь с помощью IdTCPClient. Подключение и считывание делаю в потоке Пробовал и через IdThreadComponent и через потоки без класса TThread по статье в Delphi World Если кто знает как решить эту проблему прошу помощи. Заранее спасибо откликнувшимся. Последний раз редактировалось Aleksandr; 21.11.2013 в 11:46. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Транзакция | V_a_d | БД в Delphi | 14 | 12.11.2012 17:00 |
write-транзакция в MyDAC | 3D Hunter | БД в Delphi | 7 | 05.03.2012 14:45 |