Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Блокировка записей / 5 сообщений из 5, страница 1 из 1
04.10.2004, 05:22
    #32721464
Spavel_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка записей
Я вытаскиваю таблицы с SQL Server (CREATE SQL VIEW).
Нужно ли Fox-ом обрабатывать блокировку записей? (Для начинающих)
...
Рейтинг: 0 / 0
04.10.2004, 07:54
    #32721506
Philin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка записей
Вам необходимо конкретизировать вопросы... Абсолютно не могу понять о че вы спрашиваете.
...
Рейтинг: 0 / 0
04.10.2004, 09:47
    #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
05.10.2004, 01:08
    #32723077
Spavel_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка записей
Это так при условии что одна и тажа запись редактируется пользователями по очереди. Но как отлавить те моменты когда эта запись нужна нескольким пользователям одновременно
...
Рейтинг: 0 / 0
05.10.2004, 06:52
    #32723137
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка записей
Spavel_74Это так при условии что одна и тажа запись редактируется пользователями по очереди. Но как отлавить те моменты когда эта запись нужна нескольким пользователям одновременно

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


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