powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы [новые:1] / Поиск: Искать ответы на сообщение: #362604  
25 сообщений из 37, страница 1 из 2
Microsoft SQL Server / Транзакции в MS SQL Server
    #362604
Sparrow
Скрыть профиль Поместить в игнор-лист
Участник
Главное понимать , что нет вложенных транзакций. При таком подходе.

В стэке xp не надо использовать
Begin transaction
Commit transaction
Rollbac transaction
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #362637
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Sparrow  19.04.2023, 09:05
[игнорируется]
Rollbac transaction
не компилится [:zcry]
...
Изменено: 19.04.2023, 09:30 - PaNik
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #362767
s62
Скрыть профиль Поместить в игнор-лист
Участник
Sparrow  19.04.2023, 09:05
[игнорируется]
Главное понимать , что нет вложенных транзакций. При таком подходе.

В стэке xp не надо использовать
Begin transaction
Commit transaction
Rollbac transaction
Не совсем понял, что такое стэк хр. Это, если в теле одной хп вызывается другая хп? Да, примерно понятно, что если что-то будет откатываться так, то может наверное поломаться логика транзакций.
Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры.

Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать.
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #362968
s62
Скрыть профиль Поместить в игнор-лист
Участник
Работает нормально, после выполнения этого другие процедуры тоже нормально пишут данные в БД.
Единственное, не помню точно, сталкивался с этим раньше или нет, думал, что в самой Delphi это не нужно: имена параметров хп начинаются с @. Сначала попробовал без @ вот так (изменил в примере название хп и параметра, типа соглашение о нераспространении :) ):
Код: Delphi
1.
    adoStoredProcBumBumBum.Parameters.ParamByName('Param1').Value := aParam1;
Пишет, не нашел такой параметр. А вот так заработало:
Код: Delphi
1.
    adoStoredProcBumBumBum.Parameters.ParamByName('@Param1').Value := aParam1;
...
Изменено: 19.04.2023, 15:33 - s62
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #362972
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
s62  19.04.2023, 15:32
[игнорируется]
Работает нормально, после выполнения этого другие процедуры тоже нормально пишут данные в БД.
Единственное, не помню точно, сталкивался с этим раньше или нет, думал, что в самой Delphi это не нужно: имена параметров хп начинаются с @. Сначала попробовал без @ вот так (изменил в примере название хп и параметра, типа соглашение о нераспространении :) ):
Код: Delphi
1.
    adoStoredProcBumBumBum.Parameters.ParamByName('Param1').Value := aParam1;
Пишет, не нашел такой параметр. А вот так заработало:
Код: Delphi
1.
    adoStoredProcBumBumBum.Parameters.ParamByName('@Param1').Value := aParam1;
в Delphi от используемых компонент доступа к данным сильно зависит, непосредственно dbGo не юзал, не подскажу [:unsure]
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363000
Sparrow
Скрыть профиль Поместить в игнор-лист
Участник
s62  19.04.2023, 11:35
[игнорируется]
Sparrow  19.04.2023, 09:05
[игнорируется]
Главное понимать , что нет вложенных транзакций. При таком подходе.

В стэке xp не надо использовать
Begin transaction
Commit transaction
Rollbac transaction
Не совсем понял, что такое стэк хр. Это, если в теле одной хп вызывается другая хп? Да, примерно понятно, что если что-то будет откатываться так, то может наверное поломаться логика транзакций.
Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры.

Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать.
После создания транзакции, надо там же её завершить или откатить.
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Microsoft SQL Server / Транзакции в MS SQL Server
    #363001
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Sparrow  19.04.2023, 16:12
[игнорируется]
s62  19.04.2023, 11:35
[игнорируется]
Sparrow  19.04.2023, 09:05
[игнорируется]
Главное понимать , что нет вложенных транзакций. При таком подходе.

В стэке xp не надо использовать
Begin transaction
Commit transaction
Rollbac transaction
Не совсем понял, что такое стэк хр. Это, если в теле одной хп вызывается другая хп? Да, примерно понятно, что если что-то будет откатываться так, то может наверное поломаться логика транзакций.
Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры.

Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать.
После создания транзакции, надо там же её завершить или откатить.
https://minyurov.files.wordpress.com/2014/10/microsoft-sql-server-2012-t-sql.pdf
...
Рейтинг: 1 / 0
Нравится: s62
Microsoft SQL Server / Транзакции в MS SQL Server
    #363002
Sparrow
Скрыть профиль Поместить в игнор-лист
Участник
s62  19.04.2023, 11:35
[игнорируется]
Sparrow  19.04.2023, 09:05
[игнорируется]
Главное понимать , что нет вложенных транзакций. При таком подходе.

В стэке xp не надо использовать
Begin transaction
Commit transaction
Rollbac transaction
Не совсем понял, что такое стэк хр. Это, если в теле одной хп вызывается другая хп? Да, примерно понятно, что если что-то будет откатываться так, то может наверное поломаться логика транзакций.
Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры.

Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать.
На стороне сервера там может быть много вложенных процедур.
И их разработчиков. Вот им надо запретить. Делать транзакции.
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363003
Sparrow
Скрыть профиль Поместить в игнор-лист
Участник
PaNik  19.04.2023, 09:29
[игнорируется]
Sparrow  19.04.2023, 09:05
[игнорируется]
Rollbac transaction
не компилится [:zcry]
Зануда.
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Microsoft SQL Server / Транзакции в MS SQL Server
    #363006
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Sparrow  19.04.2023, 16:16
[игнорируется]
s62  19.04.2023, 11:35
[игнорируется]
Sparrow  19.04.2023, 09:05
[игнорируется]
Главное понимать , что нет вложенных транзакций. При таком подходе.

В стэке xp не надо использовать
Begin transaction
Commit transaction
Rollbac transaction
Не совсем понял, что такое стэк хр. Это, если в теле одной хп вызывается другая хп? Да, примерно понятно, что если что-то будет откатываться так, то может наверное поломаться логика транзакций.
Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры.

Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать.
На стороне сервера там может быть много вложенных процедур.
И их разработчиков. Вот им надо запретить. Делать транзакции.
я там чуть выше сцылку привел, почитай там про транзакции
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363007
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Sparrow  19.04.2023, 16:18
[игнорируется]
PaNik  19.04.2023, 09:29
[игнорируется]
Sparrow  19.04.2023, 09:05
[игнорируется]
Rollbac transaction
не компилится [:zcry]
Зануда.
грешен, каюсь
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Microsoft SQL Server / Транзакции в MS SQL Server
    #363008
s62
Скрыть профиль Поместить в игнор-лист
Участник
Sparrow  19.04.2023, 16:16
[игнорируется]
...

На стороне сервера там может быть много вложенных процедур.
И их разработчиков. Вот им надо запретить. Делать транзакции.
Ага, примерно понятно, чтобы был какой-то единый порядок, когда начали транзакцию, когда закончили.
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363010
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
s62  19.04.2023, 16:20
[игнорируется]
Sparrow  19.04.2023, 16:16
[игнорируется]
...

На стороне сервера там может быть много вложенных процедур.
И их разработчиков. Вот им надо запретить. Делать транзакции.
Ага, примерно понятно, чтобы был какой-то единый порядок, когда начали транзакцию, когда закончили.
почитай про транзакции в MS SQL Server по моей ссылке выше, там немного чесслово
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Microsoft SQL Server / Транзакции в MS SQL Server
    #363011
Sparrow
Скрыть профиль Поместить в игнор-лист
Участник
PaNik  19.04.2023, 16:19
[игнорируется]
Sparrow  19.04.2023, 16:16
[игнорируется]
s62  19.04.2023, 11:35
[игнорируется]
Sparrow  19.04.2023, 09:05
[игнорируется]
Главное понимать , что нет вложенных транзакций. При таком подходе.

В стэке xp не надо использовать
Begin transaction
Commit transaction
Rollbac transaction
Не совсем понял, что такое стэк хр. Это, если в теле одной хп вызывается другая хп? Да, примерно понятно, что если что-то будет откатываться так, то может наверное поломаться логика транзакций.
Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры.

Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать.
На стороне сервера там может быть много вложенных процедур.
И их разработчиков. Вот им надо запретить. Делать транзакции.
я там чуть выше сцылку привел, почитай там про транзакции
В ms sql нет вложенных транзакций, есть извращённые способы это обойти. Но это не вечно. Не честно.
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363013
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Sparrow  19.04.2023, 16:22
[игнорируется]
PaNik  19.04.2023, 16:19
[игнорируется]
Sparrow  19.04.2023, 16:16
[игнорируется]
s62  19.04.2023, 11:35
[игнорируется]
Sparrow  19.04.2023, 09:05
[игнорируется]
...
Не совсем понял, что такое стэк хр. Это, если в теле одной хп вызывается другая хп? Да, примерно понятно, что если что-то будет откатываться так, то может наверное поломаться логика транзакций.
Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры.

Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать.
На стороне сервера там может быть много вложенных процедур.
И их разработчиков. Вот им надо запретить. Делать транзакции.
я там чуть выше сцылку привел, почитай там про транзакции
В ms sql нет вложенных транзакций, есть извращённые способы это обойти. Но это не вечно. Не честно.
там русским по-белому про @@trancount написано
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Microsoft SQL Server / Транзакции в MS SQL Server
    #363019
s62
Скрыть профиль Поместить в игнор-лист
Участник
PaNik  19.04.2023, 16:14
[игнорируется]
Sparrow  19.04.2023, 16:12
[игнорируется]
s62  19.04.2023, 11:35
[игнорируется]
Sparrow  19.04.2023, 09:05
[игнорируется]
Главное понимать , что нет вложенных транзакций. При таком подходе.

В стэке xp не надо использовать
Begin transaction
Commit transaction
Rollbac transaction
Не совсем понял, что такое стэк хр. Это, если в теле одной хп вызывается другая хп? Да, примерно понятно, что если что-то будет откатываться так, то может наверное поломаться логика транзакций.
Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры.

Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать.
После создания транзакции, надо там же её завершить или откатить.
https://minyurov.files.wordpress.com/2014/10/microsoft-sql-server-2012-t-sql.pdf
Блин, а я как раз вот это начал изучать, да потом забросил. Это вот в августе того года раздел изучал.
MSSQL_learn1.jpg
MSSQL_learn2.jpg
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363021
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
s62  19.04.2023, 16:25
[игнорируется]
PaNik  19.04.2023, 16:14
[игнорируется]
Sparrow  19.04.2023, 16:12
[игнорируется]
s62  19.04.2023, 11:35
[игнорируется]
Sparrow  19.04.2023, 09:05
[игнорируется]
...
Не совсем понял, что такое стэк хр. Это, если в теле одной хп вызывается другая хп? Да, примерно понятно, что если что-то будет откатываться так, то может наверное поломаться логика транзакций.
Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры.

Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать.
После создания транзакции, надо там же её завершить или откатить.
https://minyurov.files.wordpress.com/2014/10/microsoft-sql-server-2012-t-sql.pdf
Блин, а я как раз вот это начал изучать, да потом забросил. Это вот в августе того года раздел изучал.
MSSQL_learn1.jpg
MSSQL_learn2.jpg
прочитай книжку (можно выборочно) по моей ссылке - хоть и по древней версии - понимание работы сервака организует
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363022
Sparrow
Скрыть профиль Поместить в игнор-лист
Участник
PaNik  19.04.2023, 16:23
[игнорируется]
Sparrow  19.04.2023, 16:22
[игнорируется]
PaNik  19.04.2023, 16:19
[игнорируется]
Sparrow  19.04.2023, 16:16
[игнорируется]
s62  19.04.2023, 11:35
[игнорируется]
...
На стороне сервера там может быть много вложенных процедур.
И их разработчиков. Вот им надо запретить. Делать транзакции.
я там чуть выше сцылку привел, почитай там про транзакции
В ms sql нет вложенных транзакций, есть извращённые способы это обойти. Но это не вечно. Не честно.
там русским по-белому про @@trancount написано
Ну и что? Знаю такой счётчик. Что это меняеет?

Например каждый раз его проверять? Это. От очень-очень старых версий сибайз осталось. Изврат.
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363027
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Sparrow  19.04.2023, 16:26
[игнорируется]
PaNik  19.04.2023, 16:23
[игнорируется]
Sparrow  19.04.2023, 16:22
[игнорируется]
PaNik  19.04.2023, 16:19
[игнорируется]
Sparrow  19.04.2023, 16:16
[игнорируется]
...
я там чуть выше сцылку привел, почитай там про транзакции
В ms sql нет вложенных транзакций, есть извращённые способы это обойти. Но это не вечно. Не честно.
там русским по-белому про @@trancount написано
Ну и что? Знаю такой счётчик. Что это меняеет?

Например каждый раз его проверять? Это. От очень-очень старых версий сибайз осталось. Изврат.
всегда писал примерно так (тут совсем псевдокод):
procerdure <proc_name>
<параметры>
as
begin
begin try
-- тут объявляем переменные, временные таблицы и т.п.
-- тут всякие прочие операции (заполнение/модификация данных во времянках и т.п.)
-- ... (возможно еще что-то)
-- тут (в конце процедуры) - финальная модификация данных
begin tran
... -- модифицируем данные
commit tran;
end try
begin catch
if @@trancount > 0 roolback;
...
end catch;
end;
go
...
Изменено: 19.04.2023, 16:41 - PaNik
Рейтинг: 1 / 0
Нравится: Гарыныч
Microsoft SQL Server / Транзакции в MS SQL Server
    #363031
s62
Скрыть профиль Поместить в игнор-лист
Участник
PaNik  19.04.2023, 16:26
[игнорируется]
прочитай книжку (можно выборочно) по моей ссылке - хоть и по древней версии - понимание работы сервака организует
Посмотрю. Ну я думаю, что в общем серверы БД в каких-то общих принципах схоже устроены. Но понятно, что у каждого есть свои особенности, в том числе у MS SQL server. Вот может про них в частности посмотрю. У меня по нынешней работе это такое, немного сбоку, в принципе другой человек вносил в основном изменения в БД, но приходилось и запросы писать и в БД изменения вносить.
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363032
Sparrow
Скрыть профиль Поместить в игнор-лист
Участник
PaNik  19.04.2023, 16:31
[игнорируется]
Sparrow  19.04.2023, 16:26
[игнорируется]
PaNik  19.04.2023, 16:23
[игнорируется]
Sparrow  19.04.2023, 16:22
[игнорируется]
PaNik  19.04.2023, 16:19
[игнорируется]
...
В ms sql нет вложенных транзакций, есть извращённые способы это обойти. Но это не вечно. Не честно.
там русским по-белому про @@trancount написано
Ну и что? Знаю такой счётчик. Что это меняеет?

Например каждый раз его проверять? Это. От очень-очень старых версий сибайз осталось. Изврат.
всегда писал примерно так (тут совсем пседокод):
procerdure <proc_name>
<паратметры>
as
begin
begin try
begin tran
... --
commit tran;
end try
begin catch
if @@trancount > 0 roolback;
...
end catch;
end;
go
Ну и чего таким подходом добился?
Везде и всегда копировать этот код
На каждой процедуре.?

Нет вложенных транзакций. Надо где-то начать и закончить. Или откатить.
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363037
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
s62  19.04.2023, 16:39
[игнорируется]
PaNik  19.04.2023, 16:26
[игнорируется]
прочитай книжку (можно выборочно) по моей ссылке - хоть и по древней версии - понимание работы сервака организует
Посмотрю. Ну я думаю, что в общем серверы БД в каких-то общих принципах схоже устроены. Но понятно, что у каждого есть свои особенности, в том числе у MS SQL server. Вот может про них в частности посмотрю. У меня по нынешней работе это такое, немного сбоку, в принципе другой человек вносил в основном изменения в БД, но приходилось и запросы писать и в БД изменения вносить.
Книжка очень хорошая и написана простым языком, именно с учетом специфики MS SQL Server. за выходные прочитать можно.
изображение_2023-04-19_164448459.jpg
...
Изменено: 19.04.2023, 16:46 - PaNik
Рейтинг: 2 / 0
Нравится: s62, Гарыныч
Microsoft SQL Server / Транзакции в MS SQL Server
    #363040
Sparrow
Скрыть профиль Поместить в игнор-лист
Участник
PaNik  19.04.2023, 16:31
[игнорируется]
Sparrow  19.04.2023, 16:26
[игнорируется]
PaNik  19.04.2023, 16:23
[игнорируется]
Sparrow  19.04.2023, 16:22
[игнорируется]
PaNik  19.04.2023, 16:19
[игнорируется]
...
В ms sql нет вложенных транзакций, есть извращённые способы это обойти. Но это не вечно. Не честно.
там русским по-белому про @@trancount написано
Ну и что? Знаю такой счётчик. Что это меняеет?

Например каждый раз его проверять? Это. От очень-очень старых версий сибайз осталось. Изврат.
всегда писал примерно так (тут совсем пседокод):
procerdure <proc_name>
<паратметры>
as
begin
begin try
begin tran
... --
commit tran;
end try
begin catch
if @@trancount > 0 roolback;
...
end catch;
end;
go
Ты так пытаешься всегда и везде проверить что транзакция уже была .
И добротный код везде дублируешь. Дибильный код всегда и везде.

Зачем?
...
Изменено: 19.04.2023, 16:51 - Sparrow
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363044
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Sparrow  19.04.2023, 16:48
[игнорируется]
PaNik  19.04.2023, 16:31
[игнорируется]
Sparrow  19.04.2023, 16:26
[игнорируется]
PaNik  19.04.2023, 16:23
[игнорируется]
Sparrow  19.04.2023, 16:22
[игнорируется]
...
там русским по-белому про @@trancount написано
Ну и что? Знаю такой счётчик. Что это меняеет?

Например каждый раз его проверять? Это. От очень-очень старых версий сибайз осталось. Изврат.
всегда писал примерно так (тут совсем пседокод):
procerdure <proc_name>
<паратметры>
as
begin
begin try
begin tran
... --
commit tran;
end try
begin catch
if @@trancount > 0 roolback;
...
throw @@error_number, @@error_message, 1;
end catch;
end;
go
Ты так пытаешься всегда и везде проверить что транзакция уже была .
И добротный код везде дублируешь. Дибильный код всегда и везде.
этот код гарантирует, что если 3-ей и т.п. (по глубине вложенности) процедуре возникла ошибка, она будет корректно обработана в стартовой процедуре

P.S. выдел жирным то, что забыл указать изначально
...
Изменено: 19.04.2023, 16:54 - PaNik
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #363050
PaNik
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
PaNik  19.04.2023, 16:53
[игнорируется]
Sparrow  19.04.2023, 16:48
[игнорируется]
PaNik  19.04.2023, 16:31
[игнорируется]
Sparrow  19.04.2023, 16:26
[игнорируется]
PaNik  19.04.2023, 16:23
[игнорируется]
...
Ну и что? Знаю такой счётчик. Что это меняеет?

Например каждый раз его проверять? Это. От очень-очень старых версий сибайз осталось. Изврат.
всегда писал примерно так (тут совсем пседокод):
procerdure <proc_name>
<паратметры>
as
begin
begin try
begin tran
... --
commit tran;
end try
begin catch
if @@trancount > 0 roolback;
throw @@error_number, @@error_message, 1;
end catch;
end;
go
Ты так пытаешься всегда и везде проверить что транзакция уже была .
И добротный код везде дублируешь. Дибильный код всегда и везде.
этот код гарантирует, что если 3-ей и т.п. (по глубине вложенности) процедуре возникла ошибка, она будет корректно обработана в стартовой процедуре

P.S. выдел жирным то, что забыл указать изначально
поправел
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы [новые:1] / Поиск: Искать ответы на сообщение: #362604  
Пользователи онлайн (149): Анонимы (133), Администратор, Сталкер, Ветер, Bing Bot, Yandex Bot, anonymous, IT-Клоп, Гарыныч 1 мин., NSFuimus 2 мин., sergey11 4 мин., Брюквенные годы 4 мин., Blondin 4 мин., Дед-Папыхтет 6 мин., паразит 6 мин., megabyte 7 мин., gyrus 8 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]