powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Блокировка записей
5 сообщений из 5, страница 1 из 1
Блокировка записей
    #32721464
Spavel_74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вытаскиваю таблицы с SQL Server (CREATE SQL VIEW).
Нужно ли Fox-ом обрабатывать блокировку записей? (Для начинающих)
...
Рейтинг: 0 / 0
Блокировка записей
    #32721506
Philin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вам необходимо конкретизировать вопросы... Абсолютно не могу понять о че вы спрашиваете.
...
Рейтинг: 0 / 0
Блокировка записей
    #32721597
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данные храняться на SQL-сервере. Когда Вы открываете Remote View, то Вы фактически выполняете запрос (SELECT-SQL) к серверу. Т.е. на клиент попадают не сами исходные данные, а их копия. А какой смысл блокировать копию данных?

Более того, если Remote View открываются в Private DataSession (или в разных экземплярах FoxPro), то их содержимое абсолютно независимо друг от друга. Разные копии.

Другой вопрос, надо ли блокировать данные на самом SQL-сервере? В принципе, иногда возникает такая необходимость и, также, в принципе, это можно осуществить. НО! Крайне нежелательно это делать. Особенно для начинающих. Отдайте разрешение конфликтов блокировок самому серверу. Поверьте, он справится с этим лучше Вас.

От Вас потребуется только разрешение конфликтов совместного доступа. Т.е. ситуации, когда одни и те же данные модифицируеются несколькими пользователями одновременно.

Эта ситуация отлавливается примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
IF TableUpdate(.T.,.F.,"MyRemoteView")=.F.
	LOCAL laError( 1 )
	AERROR(laError)
	IF laError[ 1 , 1 ]= 1585 
	* Пока Вы редактировали данные другой пользователь внес изменения
	* Писать поверх?
	ENDIF
ENDIF

Т.е. второй параметр в команде TableUpdate() как раз и управляет вопросом: писать поверх изменений другого пользователя или выдать ошибку 1585

Правда, прежде чем писать такую обработку следует подумать: а оно Вам надо? Т.е. есть ли необходимость в таком анализе? Возможно, если всегда писать поверх изменений других пользователей ничего страшного не произойдет.
...
Рейтинг: 0 / 0
Блокировка записей
    #32723077
Spavel_74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это так при условии что одна и тажа запись редактируется пользователями по очереди. Но как отлавить те моменты когда эта запись нужна нескольким пользователям одновременно
...
Рейтинг: 0 / 0
Блокировка записей
    #32723137
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spavel_74Это так при условии что одна и тажа запись редактируется пользователями по очереди. Но как отлавить те моменты когда эта запись нужна нескольким пользователям одновременно

ВладимирМ все же популярно объяснил! Попробую объяснить еще раз, попроще.
Запись МОЖЕТ РЕДАКТИРОВАТЬСЯ НЕСКОЛЬКИМИ ПОЛЬЗОВАТЕЛЯМИ ОДНОВРЕМЕННО . Но ЛОКАЛЬНО , т.е на компьютере пользователя. Однако, ФИЗИЧЕСКИ записываться может всегда (!) только у кого-то одного . Остальные ждут своей очереди, т.е. ждут пока запись освободится. Вот этот "момент" отлавливается и предлагается пользователю для осмысления в приведенном ВладимиромМ фрагменте.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Блокировка записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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