MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
Константин Мельников Автор |
Вот простой пример, сделанный изначально для проверки возможности использования в транзакциях свободных таблиц и курсоров, открытых одновременно в разных сессиях и областях:
=== SET EXCLUSIVE OFF SET SAFETY OFF CLEAR ALL CLOSE DATABASES ALL CREATE TABLE t1 (f1 C(10)) USE IN t1 USE t1 IN 0 MAKETRANSACTABLE("t1") USE t1 IN 0 ALIAS t2 AGAIN obj=CREATEOBJECT("Session") SET DATASESSION TO obj.DATASESSIONID USE t1 IN 0 USE t1 IN 0 ALIAS t2 AGAIN BEGIN TRANSACTION === как только фокс выполняет BEGIN TRANSACTION, то благополучно (или не благополучно, тут как посмотреть) умирает Интересно ловил ли кто-нибудь такое уже? -- Константин Мельников |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
MAKETRANSACTABLE - а это , что за ф-ия в хелпе не нашел
Приведенный код действительно свалил фокс на раз ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, Константин!
Нда, печально Видать чего-то не докрутили таки... Явный претендент на багрепорт. Кстати, у кого ещё VFP9 beta стоит - попробуйте там. ------------------ WBR, Igor |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Если в конце приведенного кода дописать
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
AlexK Сообщений: 2114 Откуда: Королев,Москва Дата регистрации: 11.12.2000 |
*
Отредактировано (04.02.05 08:35) ------------------ Береги природу, мать Вашу. Моя страничка www.genrep.net |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
Владимир Максимов Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
Для VFP9beta был отдельный файл VFP9RELNOTES.EXE (около 3М) - это список и описание дополнительных функций не включенных в основной HELP.
Описание транзакций для свободных таблиц шло в файле Data.htm. Сам код я пока не проверял, но у меня вопрос: транзакция в VFP может в принципе существовать вне контейнера базы данных? Не будет ли достаточным создать хоят бы пустую DBC и "привязать" BEGIN TRANSACTION к это пустой базе данных? ------------------ |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Чего-то они в документации и в реализации недокрутили
Итак из Хелпа VFP9Relnotes - BETA Цитата:Продолжаем глумится над кодом
Если ключевой момент разремарить - по в начале транзакции были в дефолтной датасесии - то только в ней транзакция и была, если оставить заремареной - RollBack ничего не откатывает Так что ничего из выделенного из Хелпа не работает. Вот такая трава. Если конечно в релизе не поификсили ------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
Aleksey Tsingauz [MSFT] |
Здравствуйте, Константин!
Вы натолкнулись на баг, который присутствовал еще в бета версии. Жаль, что он не был найден раньше. Если MAKETRANSACTABLE вызвана для таблицы в одной сессии, то операции с этой таблицей внутри транзакции в любой другой сессии могут вызвать C5 и ROLLBACK в этих сессиях на таблице не отразится. MAKETRANSACTABLE нормально работает только в рамках одной сессии. Aleksey Tsingauz Visual FoxPro Dev Team |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
Crip_as_guest |
Вот кстати еще одно сообщение об баге, правда менее существенном.
Цитата: |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
Dmitry66 |
Нашел еще вот что (Bug?):
Создаю таблицу: Sum_1 n(13,2) заполняю ее примерно 120000 строк Пишу sum sum_1 Выдает примерно 4155412,45994860 Пишу set deci to 2 Выдает примерно 4155412,46 (как и должно быть) Таблица расположена на сетевом диске Novell Netware 5.0 Вот такая проблема на пустом месте (Vfp8sp1 все Ок). Дмитрий |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
Константин Мельников Автор |
Aleksey Tsingauz [MSFT] писал(а):
Цитата: А есть ли вероятность, что будет выпущен SP? Уж очень интересная функция MAKETRANSACTABLE() |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
Aleksey Tsingauz [MSFT] |
Цитата: Вероятность есть, но никаких конкретных планов пока нет. |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, piva!
Кстати говоря, BEGIN TRANSACTION и должна работать только для текущей сессии! Т.е. транзакция осуществляется именно внутри некоторой сессии, и до копий таблицы в других сессиях ей дела нет А что баг не выловили вовремя - это жаль P.S. Я лично Free таблицы уже давно не использую в работе (в том смысле что проекты используют либо таблицы в dbc либо SQL-серверные), лишь для всяких "обменов"/загрузок/выгрузок, ну и т.п. - т.е. там мне транзакции совсем ни к чему были... ------------------ WBR, Igor |
Re: MAKETRANSACTABLE() вместе с BEGIN TRANSACTION роняют VFP9 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, piva!
Кстати говоря, BEGIN TRANSACTION и должна работать только для текущей сессии! Т.е. транзакция осуществляется именно внутри некоторой сессии, и до копий таблицы в других сессиях ей дела нет А что баг не выловили вовремя - это жаль P.S. Я лично Free таблицы уже давно не использую в работе (в том смысле что проекты используют либо таблицы в dbc либо SQL-серверные), лишь для всяких "обменов"/загрузок/выгрузок, ну и т.п. - т.е. там мне транзакции совсем ни к чему были... ------------------ WBR, Igor |
© 2000-2024 Fox Club  |