powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / RLOCK - исправьте ошибку!!!
10 сообщений из 10, страница 1 из 1
RLOCK - исправьте ошибку!!!
    #32762238
новичек___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
во вложении пример проджекта, не могу добиться блокирования записи при нажатии на кнопку РЕДАКТИРОВАТЬ...
В чем топор?
а надо именно так: если кто-то редактирует - мессага = "запись редактируется"
иначе - просто редактирование, а получается - В ЛЮБОМ случае при попытке изменить содержимое поля NAME во второй форме - получаю в лоб Record is locked...
...
Рейтинг: 0 / 0
RLOCK - исправьте ошибку!!!
    #32762275
_kat_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там у тебя в примере и для формы просмотра и для формы редактирования
в DE формы лежат у каждой по 1 таблице TABLE1, да еще в приватных датасессиях
То есть вв кнопке редактировать ты блокируешь
текущую запись,
а затем уже открываешь второй экземпляр TABLE1, и передаешь параметр
номера записи, А ЗАПИСЬ УЖЕ ДАВНО ТОБОЙ ЖЕ БЛОКИРОВАНА, в той приватной сессии.
Вообще поищи по фокклубу или здесь по ключевым словам: "Buffering",
"LOCK","TABLEUPDATE" ,Автор Максимов (да простят меня окружающие зубры фокса)

например
http://forum.foxclub.ru/read.php?f=5&i=92517&t=92375#reply_92517

потому что тема эта огромная
Я тебе там подправила класс, в примере используется 5 буферизация(но с таблицей в данном случае лучше 3).
То есть если кто-то тут же решит блокировать запись, по получит сообщение об ошибке 108,109 (которые тебе надо в обработчике ошибок обработать)
Заметь, форма редактирования "берет" алиас из 1 формы(из DE),
и работает с ним, а неоткрывает вторую копию как у тебя было
Там много чего понаписано(для примера просто) и много чего не написано.
Но поразбираться есть с чем
...
Рейтинг: 0 / 0
RLOCK - исправьте ошибку!!!
    #32764501
новичек___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо сейчас буду разбираться...
выходит, что придется просто отказаться от приватных датасессий...
...
Рейтинг: 0 / 0
RLOCK - исправьте ошибку!!!
    #32764851
_Kat_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну ты наверно пока не отказывайся от приватных датасеесий :),
ты почитай по фоксклубу чего про них пишут
вообще скачай http://www.foxclub.ru/phoff/
очень удобно и поучительно
...
Рейтинг: 0 / 0
RLOCK - исправьте ошибку!!!
    #32765795
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi новичек___!

> выходит, что придется просто отказаться от приватных датасессий...

Странный вывод. Неправильный. Тебе надо отказаться от RLOCK и перейти на
нормальную работу в режиме оптимистической буферизации. А вовсе не наоборот.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
RLOCK - исправьте ошибку!!!
    #32765972
новичек___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это как рат то, что описал(а) _KAT_ в своем примере???
...
Рейтинг: 0 / 0
RLOCK - исправьте ошибку!!!
    #32765981
новичек___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите, будьте добры.. переход на оптимистическую - это значит, к примеру в ините форм прописать
=CursorSetProp('Buffering', 5, 'MyTable1')
=CursorSetProp('Buffering', 5, 'MyTable2')
.
.
.
=CursorSetProp('Buffering', 5, 'MyTableN')

и, потом TABLEUPDATE-ом закреплять изменения, с учетом кода Максимова, который привел(а) _КАТ_ в исправлениях к моему примеру???
...
Рейтинг: 0 / 0
RLOCK - исправьте ошибку!!!
    #32765983
новичек___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите, будьте добры.. переход на оптимистическую - это значит, к примеру в ините форм прописать
=CursorSetProp('Buffering', 5, 'MyTable1')
=CursorSetProp('Buffering', 5, 'MyTable2')
.
.
.
=CursorSetProp('Buffering', 5, 'MyTableN')

и, потом TABLEUPDATE-ом закреплять изменения, с учетом кода Максимова, который привел(а) _КАТ_ в исправлениях к моему примеру???
...
Рейтинг: 0 / 0
RLOCK - исправьте ошибку!!!
    #32767706
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi новичек___!

Я не смотрел пример (в NNTP он лишь как линк, а без связи с инетом скачать
это проблематично :) ), потому сказать по коду не могу. Но статьи
Владимира должны тебе сильно помочь для понимания темы.
Вникнув в саму ИДЕЮ буферизации, отложенной записи в реальную таблицу,
блокировки лишь на момент записи, а не момент начала редкатирования,
контроля возможных конфликтов совместного доступа (очень кстати древние
идеи - ещё на FPD это делали через SCATTER/GATHER или временные таблицы для
ввода данных) ты должен потом без труда написать код.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
RLOCK - исправьте ошибку!!!
    #32771875
новичек___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура все получилось...
1-я форма грид - по редактированию записи 2-я форма
в которой
init =cursorsetptop('Buffering', 5, 'MyTable')
текстбоксы = полям таблицы
и, далее tableupdate() или Tablerevert() с проверной ошибок....

Такой метод корректен, или текстбоксы для редактирования лучше сделать при поможи СКЛ выборки, а потом ими апдейтить таблицу

Нет все же 1-й меод с тэйблАпдейт ИМХО лучше....
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / RLOCK - исправьте ошибку!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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