Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
29.06.2004, 09:39
|
|||
|---|---|---|---|
|
|||
МНОГОПОЛЬЗОВАТЕЛЬСКИЕ ПРИЛОЖЕНИЯ И КУРСОР АДАПТЕР |
|||
|
#18+
ВСЕМ ДОБРЫЙ ДЕНЬ! ЕСТЬ ПРОБЛЕММА ПРИ МНОГОПОЛЬЗОВАТЕЛЬСКОЙ РАБОТЕ C INTERBASE (И НАВЕРНОЕ С ДРУГИМИ БАЗАМИ!!!) C ПРИМЕНЕНИЕМ АДАПТЕРА КУРСОРА. КОГДА В VFP6 РАБОТАЕШЬ С ПРОВАИДЕРОМ ПРИ КОРРЕКТИРОВКЕ ЗАПИСИ ОДНИМ ПОЛЬЗОВАТЕЛЕМ, ДРУГОЙ (ЕСЛИ ОН ЗАГРУЗИЛ RECORDSET ДО ИЗМЕНЕНИЯ ПЕРВЫМ ПОЛЬЗОВАТЕЛЕМ) МОЖЕТ ПРОСТО ОПРЕДЕЛИТЬ ЧТО ЗАПИСЬ УЖЕ ОТКОРРЕКТИРОВАНА: VERR=0 ON ERROR VERR=1 RECORDSET.UPDATE ON ERROR IF VERR=1 * СООБЩЕНИЕ RECORDSET.REQUERY ENDIF ЕСЛИ ЖЕ ВТОРОЙ КЛИЕНТ ЗАГРУЗИЛ RECORDSET С ИСПОЛЬЗОВАНИЕМ КУРСОРА АДАПТЕРА ТО СИСТЕМА СПОКОЙНО ОБНОВЛЯЕТ ЕГО. КОНЕЧНО МОЖНО ПЕРЕД КАЖДЫМ ОБНОВЛЕНИЕМ ДЕЛАТЬ REFRESH , НО ЭТО ГЛУПОСТЬ! КАК ВТОРОМУ КЛИЕНТУ ПЕРЕХВАТИТЬ СОСТОЯНИЕ (В АДО ЕСТЬ ХОРОШИЙ МЕТОД RESYNC - В КУРСОРЕ АДАПТОРЕ НЕТ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.06.2004, 13:28
|
|||
|---|---|---|---|
|
|||
МНОГОПОЛЬЗОВАТЕЛЬСКИЕ ПРИЛОЖЕНИЯ И КУРСОР АДАПТЕР |
|||
|
#18+
ПОСМОТРЕЛ HELP БОЛЕЕ ВНИМАТЕЛЬНО! КУРСОР АДАПТЕР АВТОМАТИЧЕСКИ ДЛЯ КУРСОРА УСТАНАВЛИВАЕТ ОПТИМИСТИЧЕСКУЮ БУФЕРИЗАЦИЮ СТРОК НАВЕРНОЕ ДЕЛО В ТОМ ЧТО НАДО ПОСЛЕ REPL ИСПОЛЬЗОВАТЬ VERR=0 ON ERROR VERR=1 =TABLEUPDATE(.T.,.F.) IF VERR=1 *СООБЩЕНИЕ О ТОМ ЧТО ЗАПИСЬ ИЗМЕНЕНА ДРУГИМ ПОЛЬЗОВАТЕЛЕМ =TABLEREVERT() ENDIF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.06.2004, 14:26
|
|||
|---|---|---|---|
МНОГОПОЛЬЗОВАТЕЛЬСКИЕ ПРИЛОЖЕНИЯ И КУРСОР АДАПТЕР |
|||
|
#18+
Команда TableUpdate() не генерит сообщение об ошибке. Она просто возвращает значение .F. Чтобы уточнить причину отказа в обновлении надо использовать функцию AERROR() примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. В зависимости от вида ошибки и реакции пользователя либо делаешь повторный TableUpdate(), либо откатываешь изменения TableRevert(), либо даешь возможность пользователю внести изменения в некорректные данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.06.2004, 14:43
|
|||
|---|---|---|---|
|
|||
МНОГОПОЛЬЗОВАТЕЛЬСКИЕ ПРИЛОЖЕНИЯ И КУРСОР АДАПТЕР |
|||
|
#18+
БОЛЬШОЕ СПАСИБО ЗА ПОСКАЗКУ - ПОПРОБУЮ ДОМА (НА РЕАЛЬНОЙ БАЗЕ ЗАРЕКСЯ!) ОДНАКО В HELP НАЧИНАЯ С VFP 3.0 ПИШУТ, ЧТО ПРИ ВТОРОМ ПАРАМЕТРЕ .F. ПОПЫТКА ОБНОВЛЕНИЯ ЗАПИСИ РАНЕЕ ОТКОРРЕКТИРОВАННОЙ ДРУГИМ ПОЛЬЗОВАТЕЛЕМ ГЕНЕРИРУЕТ ОШИБКУ VFP (ВНЕ ЗАВИСИМОСТИ ОТ ТОГО БУФЕРИЗИРУЕТСЯ СТРОКА ИЛИ ТАБЛИЦА) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.06.2004, 15:16
|
|||
|---|---|---|---|
МНОГОПОЛЬЗОВАТЕЛЬСКИЕ ПРИЛОЖЕНИЯ И КУРСОР АДАПТЕР |
|||
|
#18+
Help не всегда соответствует реальному положению вещей. Такие моменты надо проверять на практике. Возможно, в VFP3 действительно генерилась ошибка, но в VFP6 (и более поздних) никакой ошибки не возникает. Ошибка будет только при попытке применить TableUpdate() на НЕ буфферизированных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&tablet=1&tid=1596243]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
164ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 268ms |
| total: | 540ms |

| 0 / 0 |
