|
|
|
Ошибка 1593
|
|||
|---|---|---|---|
|
#18+
В форме несколько таблиц, все, кроме одной 3 буферизация, одна 5-я. При отмене изменений TABLEREVERT() таблиц с 3-ей нормально проходит, а про 5-ю TABLEREVERT(.T.) ругается, что внутри транзакций низя эту команду использовать. Я транзакций не делал. Если там автоматическая транзакция скажите, пожалуйста, как ее побороть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 03:19 |
|
||
|
Ошибка 1593
|
|||
|---|---|---|---|
|
#18+
покажите пример, демонстрир-й Вашу проблему единственное на , что укажу - это то, что как раз опер-и сохр-я или отмены над группой курсоров как раз и нужно оборачивать в тр-ю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 09:51 |
|
||
|
Ошибка 1593
|
|||
|---|---|---|---|
|
#18+
SELECT cur1 TABLEREVERT() SELECT cur2 TABLEREVERT(.T.) в событии Command.Click, cur1 - 3-я буферизация cur2 - 5-я TXNLEVEL() показывает 1 в отладчике. Откуда транзакция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 14:38 |
|
||
|
Ошибка 1593
|
|||
|---|---|---|---|
|
#18+
А это Вам виднее. Буферизация никак, никоим образом, не открывает транзакцию. Это значит, что Вы сами где-то, как-то, но явно открыли транзакцию. Т.е. дали команду BEGIN TRANSACTION. Для справки. Если Вы использовали стнадартные триггера, созданные через Referntial Integrity, то внутри них открываются транзакции. Хотя, как правило, они закрываются после завершения работы триггера. А вообще, сделайте поиск по всем файлам проекта строки BEGIN TRANSACTION. Это можно сделать через пункт меню Tools - Code Referense ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 14:45 |
|
||
|
Ошибка 1593
|
|||
|---|---|---|---|
|
#18+
BEGIN TRANSACTION у меня есть рядом ( в другой кнопке), где SELECT cur1 TABLEUPDATE() SELECT cur2 TABLEUPDATE(.T.) но там есть и END TRANSACTION и когда вылетает ошибка, я той кнопки, где навешана транзакция вообще не касаюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 18:52 |
|
||
|
Ошибка 1593
|
|||
|---|---|---|---|
|
#18+
Еще раз. Буферизация и транзакция - это два РАЗНЫХ процесса. Один другой никак не может вызвать. Никоим образом. Это значит, что ВЫ САМИ открыли транзакцию. Ищите ошибку в своем коде. Буферизация здесь не при чем. Посмотрите ДО команды TableRevert() что возвращает TXNLEVEL(). "Там есть END TRANSACTION" вовсе не означает что эта команда была выполнена. Мало ли какими условиями Вы ее окружили. Никто здесь не заглядывает Вам через плечо и не может сказать в чем Ваша ошибка. Учитесь искать ошибки в собственных программах самостоятельно. В данном случае надо отловить места изменения значения функции TXNLEVEL(). Делается это примерно так: - Открываете окно Debugger - Переходите в окно Watch - В строке ввода вводите TXNLEVEL() и нажимаете Enter - В окне Watch должна появится строка в столбце Name которой записана введенная функция, а в столбце Value ее текущее значение - Теперь левой клавишей мыши дважды щелкните слева от этой строки в серой полосе рамки окна. Должна появится большая красная точка. Эта точка означает, что при любом изменении значения TXNLEVEL() произойдет автоматический переход в режим отладки. И Вы увидите, на какой команде это произошло Теперь запускаете свою форму и смотрите где происходит изменение уровня вложенности транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 20:12 |
|
||
|
Ошибка 1593
|
|||
|---|---|---|---|
|
#18+
Спасибо, я так и делал, TXNLEVEL() дает 1, как я писал выше. Тут еще такое дело, до того как я поменял буферизацию на 5-ю у одной из таблиц - у всех была 3-я и SELECT cur1 TABLEREVERT() SELECT cur2 TABLEREVERT(.T.) было окружено BEGIN TRANSACTION и END TRANSACTION, после смены буфкризации транзакцию убрал, но работает, как будто она осталась. Перекомпилировал проект -то же самое. Создал новую форму. куда код перенес - нормально стало работать? Не подскажите, в чем была проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 21:36 |
|
||
|
Ошибка 1593
|
|||
|---|---|---|---|
|
#18+
NikAlбыло окружено BEGIN TRANSACTION и END TRANSACTION, после смены буфкризации транзакцию убрал, но работает, как будто она осталась. Перекомпилировал проект -то же самое. Создал новую форму. куда код перенес - нормально стало работать? Не подскажите, в чем была проблема? Такое впечатление, что Вы так же вышли и вошло в фокс, ели это так, то видимо форма имела Default DataSessin в ней была открыта транзакция, Ваш обработчик ошибок не анализимрует наличие транзакции и не откатывает её, поэтому работа в сессии была в транзакции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 09:30 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34855719&tid=1588672]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 224ms |
| total: | 376ms |

| 0 / 0 |
