Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ошибка 1593 / 9 сообщений из 9, страница 1 из 1
08.10.2007, 03:19
    #34852920
NikAl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1593
В форме несколько таблиц, все, кроме одной 3 буферизация, одна 5-я. При отмене изменений TABLEREVERT() таблиц с 3-ей нормально проходит, а про 5-ю TABLEREVERT(.T.) ругается, что внутри транзакций низя эту команду использовать. Я транзакций не делал. Если там автоматическая транзакция скажите, пожалуйста, как ее побороть.
...
Рейтинг: 0 / 0
08.10.2007, 09:51
    #34853075
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1593
покажите пример,
демонстрир-й Вашу проблему

единственное на , что укажу - это
то, что как раз опер-и сохр-я или отмены над
группой курсоров как раз и нужно оборачивать в тр-ю
...
Рейтинг: 0 / 0
08.10.2007, 14:38
    #34854150
NikAl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1593
SELECT cur1
TABLEREVERT()
SELECT cur2
TABLEREVERT(.T.)

в событии Command.Click, cur1 - 3-я буферизация cur2 - 5-я

TXNLEVEL() показывает 1 в отладчике.

Откуда транзакция?
...
Рейтинг: 0 / 0
08.10.2007, 14:45
    #34854191
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1593
А это Вам виднее. Буферизация никак, никоим образом, не открывает транзакцию. Это значит, что Вы сами где-то, как-то, но явно открыли транзакцию. Т.е. дали команду BEGIN TRANSACTION.

Для справки. Если Вы использовали стнадартные триггера, созданные через Referntial Integrity, то внутри них открываются транзакции. Хотя, как правило, они закрываются после завершения работы триггера.

А вообще, сделайте поиск по всем файлам проекта строки BEGIN TRANSACTION. Это можно сделать через пункт меню Tools - Code Referense
...
Рейтинг: 0 / 0
08.10.2007, 18:52
    #34855060
NikAl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1593
BEGIN TRANSACTION у меня есть рядом ( в другой кнопке), где
SELECT cur1
TABLEUPDATE()
SELECT cur2
TABLEUPDATE(.T.)

но там есть и END TRANSACTION

и когда вылетает ошибка, я той кнопки, где навешана транзакция вообще не касаюсь
...
Рейтинг: 0 / 0
08.10.2007, 20:12
    #34855175
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1593
Еще раз.

Буферизация и транзакция - это два РАЗНЫХ процесса. Один другой никак не может вызвать. Никоим образом. Это значит, что ВЫ САМИ открыли транзакцию. Ищите ошибку в своем коде. Буферизация здесь не при чем.

Посмотрите ДО команды TableRevert() что возвращает TXNLEVEL(). "Там есть END TRANSACTION" вовсе не означает что эта команда была выполнена. Мало ли какими условиями Вы ее окружили.

Никто здесь не заглядывает Вам через плечо и не может сказать в чем Ваша ошибка. Учитесь искать ошибки в собственных программах самостоятельно.

В данном случае надо отловить места изменения значения функции TXNLEVEL(). Делается это примерно так:

- Открываете окно Debugger
- Переходите в окно Watch
- В строке ввода вводите TXNLEVEL() и нажимаете Enter
- В окне Watch должна появится строка в столбце Name которой записана введенная функция, а в столбце Value ее текущее значение
- Теперь левой клавишей мыши дважды щелкните слева от этой строки в серой полосе рамки окна. Должна появится большая красная точка. Эта точка означает, что при любом изменении значения TXNLEVEL() произойдет автоматический переход в режим отладки. И Вы увидите, на какой команде это произошло

Теперь запускаете свою форму и смотрите где происходит изменение уровня вложенности транзакции.
...
Рейтинг: 0 / 0
08.10.2007, 21:36
    #34855292
NikAl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1593
Спасибо, я так и делал, TXNLEVEL() дает 1, как я писал выше. Тут еще такое дело, до того как я поменял буферизацию на 5-ю у одной из таблиц - у всех была 3-я и

SELECT cur1
TABLEREVERT()
SELECT cur2
TABLEREVERT(.T.)

было окружено BEGIN TRANSACTION и END TRANSACTION, после смены буфкризации транзакцию убрал, но работает, как будто она осталась. Перекомпилировал проект -то же самое. Создал новую форму. куда код перенес - нормально стало работать? Не подскажите, в чем была проблема?
...
Рейтинг: 0 / 0
09.10.2007, 09:30
    #34855719
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1593
NikAlбыло окружено BEGIN TRANSACTION и END TRANSACTION, после смены буфкризации транзакцию убрал, но работает, как будто она осталась. Перекомпилировал проект -то же самое. Создал новую форму. куда код перенес - нормально стало работать? Не подскажите, в чем была проблема?

Такое впечатление, что Вы так же вышли и вошло в фокс, ели это так, то видимо форма имела Default DataSessin в ней была открыта транзакция, Ваш обработчик ошибок не анализимрует наличие транзакции и не откатывает её, поэтому работа в сессии была в транзакции
...
Рейтинг: 0 / 0
09.10.2007, 22:20
    #34858538
NikAl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1593
Спасибо.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ошибка 1593 / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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