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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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