Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 18 19 20 21 22 23 [24] 25 26 27   вперед  Ctrl
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
Dimitry Sibiryakov
YuRock
if tr.InTransactionthen

А можешь привести пример когда в этом месте будет не InTransaction?
Я уже привел.
Когда не произойдет успешного (без исключений) выполнения commit.
29 ноя 19, 13:58    [22028836]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
YuRock
Dimitry Sibiryakov
пример когда в этом месте будет не InTransaction?
Я уже привел.
Когда не произойдет успешного (без исключений) выполнения commit.
Вернее, наоборот: не InTransaction будет, когда успешно выполнится Commit.
29 ноя 19, 14:07    [22028858]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
Dimitry Sibiryakov
YuRock
if tr.InTransactionthen

А можешь привести пример когда в этом месте будет не InTransaction?

Когда "команда" завершит её, каким-либо образом... :)
YuRock

tr.StartTransaction;
try
  команда;
  tr.Commit;
finally
  if tr.InTransaction then
    tr.Rollback;
end;

29 ноя 19, 14:10    [22028862]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 836
YuRock
Точнее, либо так:
tr.StartTransaction;
try
  команда;
  tr.Commit;
finally
  if tr.InTransaction then
    tr.Rollback;
end;

Либо так:
tr.StartTransaction;
try
  команда;
  tr.Commit;
except
  on E: Exception do begin
    Log( ... );
    if tr.InTransaction then
      tr.Rollback;
  end;
end;


если "команда" - это один sql-запрос, не являющийся вызовом селективной процедуры с suspend-ами, попутно выполняющей изменения даннных, то роллбак по крайней мере не нужен, а то и вреден. Коммит красивше.
29 ноя 19, 14:16    [22028878]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50343

ёёёёё
Когда "команда" завершит её, каким-либо образом... :)

А, у тебя там ещё и finally. Я слишком привык к тому, что в этом месте всегда стоит except.

Posted via ActualForum NNTP Server 1.5

29 ноя 19, 14:19    [22028890]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
Старый плюшевый мишка
если "команда" - это один sql-запрос, не являющийся...

Да, я это знаю. Но так же знаю о том, что в этом одном запросе могут быть (или появиться позже) сработки триггеров и т.д...
Или даже просто добавится еще одна "команда" в коде (и ее могут забыть "обернуть").

Только если я железно уверен, что "команда" сейчас и в будущем приведет к выполнению исключительно одной "SQL-команды", тогда я пишу

YuRock
tr.StartTransaction;
try
  команда;
finally
  tr.Commit;
end;

Но такое бывает редко.
29 ноя 19, 14:25    [22028908]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50343

YuRock
Только если я железно уверен, что "команда" сейчас и в будущем приведет к выполнению
исключительно одной "SQL-команды", тогда я пишу

И тем самым зарываешь прелестные грабли на случай если исключение возникнет в Commit.

Posted via ActualForum NNTP Server 1.5

29 ноя 19, 14:35    [22028923]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
Dimitry Sibiryakov
YuRock
Только если я железно уверен, что "команда" сейчас и в будущем приведет к выполнению
исключительно одной "SQL-команды", тогда я пишу

И тем самым зарываешь прелестные грабли на случай если исключение возникнет в Commit.
Нет, не грабли, это осознанно.
Это значит, что всё, приехали, и должен сработать обработчик на более высоком уровне. Чтобы сделать реконнект, или перезапуск, или еще что.
29 ноя 19, 14:41    [22028932]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50343

YuRock
Это значит, что всё, приехали, и должен сработать обработчик на более высоком уровне.
Чтобы сделать реконнект, или перезапуск, или еще что.

Если коммит обломался, то реконнект не пройдёт из-за ошибки на дисконнекте. Перезапуск -
тоже. Понадобятся очень специфические средства, отсутствующие в сабже чтобы коннект из
этого состояния выбить.

Posted via ActualForum NNTP Server 1.5

29 ноя 19, 14:49    [22028942]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
Dimitry Sibiryakov
Если коммит обломался, то реконнект не пройдёт из-за ошибки на дисконнекте. Перезапуск -
тоже.
Не понял, почему и при чем тут это всё. Ну, ладно, отвечать уже поздно походу.
29 ноя 19, 15:08    [22028962]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
Напоследок.
Dimitry Sibiryakov
Понадобятся очень специфические средства, отсутствующие в сабже
В моем древнем IBX есть TIBDatabase.ForceClose (который и вызывается при дисконнекте), он работает отлично и без исключений.
29 ноя 19, 15:11    [22028967]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 836
Dimitry Sibiryakov

Если коммит обломался, то реконнект не пройдёт из-за ошибки на дисконнекте. Перезапуск -
тоже. Понадобятся очень специфические средства, отсутствующие в сабже чтобы коннект из
этого состояния выбить.


Году эдак в 94-м я тоже коммиты траил. Но так с тех пор и не видал исключения на коммите. Таковое означает, что сдох или эмир или ишак или сервер или сеть. Причём умудрился именно в этот момент. Сравнивая частоту выполнения коммитов в приложении и их продолжительность на сервере с частотой и продолжительностью всяких разных других телодвижений, поневоле приходишь к выводу, что чтобы его увидеть, это самое исключение на коммите, надо быть фантастическим везунчиком. И по мне так самое разумное, что может в этом случае сделать приложение - не мучить специфические средства, а тупо завалиться с как можно более громким грохотом, чтобы админ поднял задницу и приступил к выполнению своих производственных обязанностей. И не только это приложение.

Да, и этта...
+
Свободу Юрию Деточкину!
И чего он умудрился натворить...
29 ноя 19, 15:15    [22028977]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1588
Я не помню почему я не остался на IBX.
Долго время сидел на BDE но когда стал переходить с него - сначала пробовал IBX но потом купил FIBPlus.
Скорее всего мне бы и IBX хватало.
Вероятно пошел на FIB т.к. он развивался и обещал поддерживать свежие версии FB...
29 ноя 19, 15:52    [22029028]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
SergaKirov
Member

Откуда:
Сообщений: 1
Господа знатоки! Прошу помощи!
Кто может показать, как на C++ Builder 10.3 Community установить компоненты FIBPlus ? И возможно ли это вообще?
Фибы скачал с https://github.com/madorin/fibplus
29 ноя 19, 16:49    [22029084]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61460
Симонов Денис> Программировать на кастрированной версии

Я ничего про кастрированную версию не говорил.
Файрволы и блокировки - отдельное ПО.

Posted via ActualForum NNTP Server 1.5

30 ноя 19, 11:20    [22029388]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Skleroz
Member

Откуда:
Сообщений: 117
YuRock,

Commit в finally??
Вы в своём уме? Что бы ни вышло, хоть наполовину, мы всё равно попытаемся закоммитить?
А потом разгребать неконсистентность??
Для чего, по-вашему, нужны транзакции?
У меня непреодолимое желание Вас оскорблять.
Для Вас приготовлен отдельный котёл в аду.

Сообщение было отредактировано: 4 май 20, 06:12
4 май 20, 06:11    [22127077]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
ъъъъъ
Member

Откуда:
Сообщений: 795
Skleroz
YuRock,

Commit в finally??
Вы в своём уме? Что бы ни вышло, хоть наполовину, мы всё равно попытаемся закоммитить?
А потом разгребать неконсистентность??
Для чего, по-вашему, нужны транзакции?
У меня непреодолимое желание Вас оскорблять.
Для Вас приготовлен отдельный котёл в аду.

У человека большой опыт и, соответственно, уверенность в собственной правоте.
...
Я когда-то спроектировал систему "по книжке", с использованием ErWin. На тот момент, ErWin генерировал скрипт, реализующий integrity constraints ... с помощью триггеров. После успешного внедрения мне было совершено пофиг на замечания, что так делать нельзя: у меня ЭТО работает и приносит деньги...
ps: "на триггерах" я больше не делаю, конечно, хотя тот проект все ещё живёт своей жизнью, "на триггерах"... :)
4 май 20, 09:53    [22127097]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
hvlad
Member

Откуда:
Сообщений: 10954
Skleroz,

сначала стоит изучить матчасть и внимательно прочитать написанное.
Иначе котёл может пригодиться своему хозяину ;)
4 май 20, 10:52    [22127120]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 836
hvlad
Skleroz,

сначала стоит изучить матчасть и внимательно прочитать написанное.
Иначе котёл может пригодиться своему хозяину ;)


У нас тут самоизоляция, панимаш. Потребление алкоголя резко выросло. Ну, относительно здоровым населением. Вот и результат - бутыль опустела и тянет поговорить (С).
4 май 20, 13:54    [22127214]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
hvlad
Member

Откуда:
Сообщений: 10954
Старый плюшевый мишка
бутыль опустела и тянет поговорить (С).
Итог нам известен :)
Хотя - сам процесс... ;)
4 май 20, 14:01    [22127218]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61460
Хороший котёл нужен всем.
В хозяйстве пригодится.

Posted via ActualForum NNTP Server 1.5

4 май 20, 15:17    [22127252]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
Skleroz
YuRock,

Commit в finally??
Вы в своём уме? Что бы ни вышло, хоть наполовину, мы всё равно попытаемся закоммитить?
А потом разгребать неконсистентность??
Для чего, по-вашему, нужны транзакции?
У меня непреодолимое желание Вас оскорблять.
Для Вас приготовлен отдельный котёл в аду.
Ух ты, какое обсуждение интересное всплыло из ада прошлого.
Жаль, я пропустил из-за рыбалки)
6 май 20, 17:27    [22128350]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1376
Коллеги, кто-то уже допиливал FIB+ для FB 4? Сходу наткнулся на необходимость поддержки INT128.
16 июн 20, 04:18    [22151323]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Gallemar
Member

Откуда: г.Иркутск
Сообщений: 5326
CyberMax, напиши https://www.sql.ru/forum/memberinfo.aspx?mid=173570 , для FB3 он дописывал.
16 июн 20, 04:26    [22151325]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1376
Gallemar,

Да, ему я написал уже. Жду ответа.
16 июн 20, 05:01    [22151327]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 18 19 20 21 22 23 [24] 25 26 27   вперед  Ctrl
Все форумы / Firebird, InterBase Ответить