Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.02.2007, 21:40
|
|||
|---|---|---|---|
Вложенные транзакции: 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? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.02.2007, 09:16
|
|||
|---|---|---|---|
|
|||
Вложенные транзакции: T-SQL в ASA8 |
|||
|
#18+
Может перед execute, надо сделать commit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.02.2007, 10:57
|
|||
|---|---|---|---|
Вложенные транзакции: 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, 17:22
|
|||
|---|---|---|---|
Вложенные транзакции: T-SQL в ASA8 |
|||
|
#18+
Скорее всего, еще надо учитывать сам запуск процедуры. --- http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.02.2007, 18:31
|
|||
|---|---|---|---|
Вложенные транзакции: T-SQL в ASA8 |
|||
|
#18+
White OwlСкорее всего, еще надо учитывать сам запуск процедуры. так ведь уже внутри процедуры, но до выполнения begin transaction имеем @@trancount=0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.02.2007, 19:43
|
|||
|---|---|---|---|
Вложенные транзакции: T-SQL в ASA8 |
|||
|
#18+
Может case портит ? Попробуйте типа select @trancount = @@trancount сразу, а затем case с локал @trancount. Да еще разные(?) переменные: @transisopen vs. @TransIsOpen + отладчик уберите, попробуйте просто selectом печатать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=55&tablet=1&tid=2012255]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 378ms |

| 0 / 0 |
