powered by simpleCommunicator - 2.0.47     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Cоздание VIEW на FoxPro (допустим к таблице в базе MSSQL)
6 сообщений из 6, страница 1 из 1
Cоздание VIEW на FoxPro (допустим к таблице в базе MSSQL)
    #32085865
Alexey Savelyev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположим такой вариант - очень частый при совместной работе
с одной таблицей. Два пользователя создали через VIEW редактируют
одну таблицу. Теперь пользователь № 1 удалил запись в то время
как пользователь № 2 ее редактировал. Теперь пользователь № 2
производит запись своих изменений (происходят команда lSuccess=TABLEUPDATE(.T.,.T.) затем
requery()) и пользователь видит что его строка вместо того чтобы обновится вообще
изчезла.
Как поступать в таких случаях? Как дать пользователю № 2 знать что строки которую он хочет
редактировать уже нет? Или как дать пользователю № 1 знать что строка которую он хочет удалить
редактируетсЯ?
Заранее спасибо за ответы! Всех с Новым Годом!
...
Рейтинг: 0 / 0
Cоздание VIEW на FoxPro (допустим к таблице в базе MSSQL)
    #32086114
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиск по форумам - тут сто раз такое обсуждалось

От себя скажу - лучше вообще не допускать таких ситуаций, когда с одной записью десять человек работают. Нехорошо это :)
...
Рейтинг: 0 / 0
Cоздание VIEW на FoxPro (допустим к таблице в базе MSSQL)
    #32086172
Alexey Savelyev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могли бы Вы уточнить где именно искать? Заранее спасибо!
...
Рейтинг: 0 / 0
Cоздание VIEW на FoxPro (допустим к таблице в базе MSSQL)
    #32086631
Фотография Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Искать лучше в форуме Microsoft SQL Server.

А вообще лучше не пользоваться Remote View в VFP.
Глючные они, и отследить их работу очень тяжело.
Лучше вызывать хранимые процедуры.
Но это ИМХО.

http://nsvisual.com/ph/read.php3?f=5&pnn=1&i=44487&t=44487
...
Рейтинг: 0 / 0
Cоздание VIEW на FoxPro (допустим к таблице в базе MSSQL)
    #32086905
Alexey Savelyev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To tygra
От себя скажу - лучше вообще не допускать таких ситуаций, когда с одной записью десять человек работают. Нехорошо это :)

Конечно, не хорошо, но в хорошо написанной программе все нужно предусмотреть.

Самое простое решение которое я пока нашел это:

После изменения данных (текущей строки) во VIEW пишем следующее
lSuccess=TABLEUPDATE(.F.,.F.) &&- пытаемся сапдейтить данные (текущую строку) && из view в источник на SQL-server
IF lSuccess=.F.
WAIT wind
TABLEREVERT(.F.) && - если попытка неудачна (данная запись была изменена или удалена другим пользователем), то восстанавливаем данную запись во VIEW в исходное состояние
messagebox('Данные которые вы пытаетесь изменить, были изменены другим пользователем !',16,' ')
endif
REQUERY() && - перезапрашиваем измененные другим пользователем данные

Перед добавлением новой записи следующее
REQUERY() && запрашиваю во view самые последние записи
LOCATE FOR num=v_num && ищу есть ли уже запись с данным кодом (primary key)
if found() && если есть
messagebox('Запись с данным кодом, уже была добавлена другим пользователем !',16,' ')
retu .F.
endif



Хотелось бы конечно заранее знать была ли запись с данным primary key и timestamp удалена, изменена или добавлена. Но пока не додумался как это сделать средствами VFP (может совместными VFP и MSSQL). Если кто подскажет буду рад!
...
Рейтинг: 0 / 0
Cоздание VIEW на FoxPro (допустим к таблице в базе MSSQL)
    #32087024
Фотография Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Alexey Savelyev

Ны вы же имеете на клиенте timestamp (t1),
перед фиксацией изменений после редактирования,
делаете запрос на сервер для primary key получаете timestamp (t2),
если t1<>t2, то значит пока вы редактировали запись,
кто-то уже внес изменения.

Вроде понятно сказал :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Cоздание VIEW на FoxPro (допустим к таблице в базе MSSQL)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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