Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как обработать событие “удаление” / 9 сообщений из 9, страница 1 из 1
12.11.2004, 15:19
    #32779975
Spavel_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие “удаление”
Форма Select-ом (типа Remote View) захватывает с SQL Server данные. 1-й пользователь удаляет запись, а второй пытается эту запись редактировать, а фактически записи уже нет. Как сказать второму пользователю, что записи уже нет?
...
Рейтинг: 0 / 0
12.11.2004, 15:24
    #32779992
luser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие “удаление”
GETFLDSTATE(...) , далее в поиск, тут куча тем с этими обсуждениями.
...
Рейтинг: 0 / 0
12.11.2004, 16:36
    #32780245
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие “удаление”
По большому счету, никак

Это такая особенность работы клиент-серверных приложений. Второй пользователь не узнает о том, что запись была удалена другим пользователем, пока сам не попробует модифицировать эту запись.

Т.е. только обработка отказа в обновлении данных.
...
Рейтинг: 0 / 0
12.11.2004, 22:10
    #32780671
Spavel_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие “удаление”
ВладимирМТ.е. только обработка отказа в обновлении данных.
А можно поподробнее.
...
Рейтинг: 0 / 0
12.11.2004, 22:33
    #32780682
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие “удаление”
Ну, "штатно", сброс данных из Remote View происходит по команде TableUpdate(), вот в случае отказа в обновлении и анализируешь причину отказа. Примерно так:

Код: plaintext
1.
2.
3.
4.
5.
IF TableUpdate(.T.,.T.,"MyView")=.F.
	LOCAL laError( 1 )
	=AERROR(laError)
	* Анализ содержимого массива laError 
	* на предмет выяснения причины отказа в обновлении
ENDIF

В массиве laError будет сообщение об ошибке собственно SQL-сервера. Точно не скажу, какой там в этом случае будет номер ошибки, но попробуй поэксперимнтировать. Думаю, быстро определишь.

Первый элемент массива всегда будет иметь значение 1526 (ошибка ODBC), а вот 5 элемент массива - это уже код ошибки собственно SQL-сервера.

Та же самая логика, если ты делаешь сброс изменений через SPT-курсоры (командой SQLExec()).
...
Рейтинг: 0 / 0
12.11.2004, 22:41
    #32780691
Spavel_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие “удаление”
Всё вроде понятно. Буду пробовать.
...
Рейтинг: 0 / 0
12.11.2004, 22:44
    #32780693
Spavel_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие “удаление”
А гденибуть можно посматреть коды Ошибок SQL-сервера с их объяснением?
...
Рейтинг: 0 / 0
12.11.2004, 22:50
    #32780694
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие “удаление”
Spavel_74А гденибуть можно посматреть коды Ошибок SQL-сервера с их объяснением?
В HELP к соответсвующему серверу. Если речь идет о MS SQL, то его Help называется Books OnLine (сокращенно BOL).

Впрочем, в массиве сформированном по AERROR(), кроме кода ошибки будет и текст сообщения об ошибке, которое сформирует SQL-сервер (второй и третий элементы). Обычно этого текста вполне достаточно, чтобы понять причину ошибки.
...
Рейтинг: 0 / 0
12.11.2004, 22:57
    #32780698
Spavel_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие “удаление”
Ясно.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как обработать событие “удаление” / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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