Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вложенные транзакции: T-SQL в ASA8
|
|||
|---|---|---|---|
|
#18+
Читаю доку: SQL Anywhere 8.0.2For transactions starting with a BEGIN TRANSACTION statement, @@trancount has a value of 1 in both Adaptive Server Anywhere and Adaptive Server Enterprise after the first BEGIN TRANSACTION statement. If a transaction is implicitly started with a different statement, and a BEGIN TRANSACTION statement is then executed, @@trancount has a value of 1 in Adaptive Server Anywhere , and a value of 2 in Adaptive Server Enterprise after the BEGIN TRANSACTION statement. Провожу простой эксперимент на ASA 8.0.3. 1) Создаю процедуру на T-SQL: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. Вопрос: Почему 2, а не 1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2007, 21:40 |
|
||
|
Вложенные транзакции: T-SQL в ASA8
|
|||
|---|---|---|---|
|
#18+
Может перед execute, надо сделать commit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2007, 09:16 |
|
||
|
Вложенные транзакции: T-SQL в ASA8
|
|||
|---|---|---|---|
|
#18+
Sergey OrlovМожет перед execute, надо сделать commit Да не в том дело. Оно понятно, что чудеса происходят из-за наличия insert'а перед вызовом процедуры, который неявно (implicitly) стартует транзакцию. Если insert'а нет, но как и ожидалось, на входе в процедуру @@trancount=0, после begin transaction получаем @@trancount=1. Если есть неявный старт транзакции, то на входе в процедуру получаем @@trancount=0, что соответствует доке: SQL Anywhere StudioAdaptive Server Anywhere does not set the @@trancount value to 1 when a transaction is started implicitly. Consequently, the Adaptive Server Anywhere @@trancount variable has a value of zero before any BEGIN TRANSACTION statement (even though there is a current transaction) но после begin transaction непонятным образом @@trancount подпрыгивает до двух, что доке не соответствует: SQL Anywhere StudioIf a transaction is implicitly started with a different statement, and a BEGIN TRANSACTION statement is then executed, @@trancount has a value of 1 in Adaptive Server Anywhere Что и где я не так понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2007, 10:57 |
|
||
|
Вложенные транзакции: T-SQL в ASA8
|
|||
|---|---|---|---|
|
#18+
Скорее всего, еще надо учитывать сам запуск процедуры. --- http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2007, 17:22 |
|
||
|
Вложенные транзакции: T-SQL в ASA8
|
|||
|---|---|---|---|
|
#18+
White OwlСкорее всего, еще надо учитывать сам запуск процедуры. так ведь уже внутри процедуры, но до выполнения begin transaction имеем @@trancount=0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2007, 18:31 |
|
||
|
Вложенные транзакции: T-SQL в ASA8
|
|||
|---|---|---|---|
|
#18+
Может case портит ? Попробуйте типа select @trancount = @@trancount сразу, а затем case с локал @trancount. Да еще разные(?) переменные: @transisopen vs. @TransIsOpen + отладчик уберите, попробуйте просто selectом печатать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2007, 19:43 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34326246&tid=2012255]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 401ms |

| 0 / 0 |
