|
|
|
Конфликт обновления в View'ке
|
|||
|---|---|---|---|
|
#18+
Всем здравствуйте. Созданы две таблицы в MS SQL Server 2000 В FoxPro 8 я создал представления для двух таблиц. У меня есть две формы: Представление настроено так: Вкладка Update Criteria в SQL WHERE clause includes установлен - key field only ___________________________ в Update using установлен - SQL UPDATE ___________________________ Стоит галочка Send SQL update 1-я для того, чтобы просматривать список людей (Фамилия, Имя, Отчество) 2-я для просмотра детальной информации по человеку. Представление в 1-ой и 2-ой формах подключаю через THISFORM.Init() в ручную WITH THISFORM.Grid1 .RecordSource="RoomerCardIndexDB" .ColumnCount = 4 .Column1.ControlSource = "RoomerCardIndexDB.Surname " .Column2.ControlSource = "RoomerCardIndexDB.Name " ….. ENDWITH Так вот в первой форме когда я выбираю человека из списка (Представления), например IDRoomer = 3 и вхожу в карточку с детальной информацией (запускаю вторую форму), и редактирую поля таблицы DetailsRoomerDB, которые привязаны к обьектам Text1, Text2, и т.д. то по закрытию в формы происходит ошибка «Конфликт обновления», если с другой копии программы удалили из таблицы RoomerCardIndexDB запись c IDRoomer = 3. Вопрос: Как блокировать запись в таблице RoomerCardIndexDB и принадлежащие ей записи в DetailsRoomerDB чтобы в другой копии приложения выдавать сообщения о том что эта запись уже редактируется? p.s. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2006, 17:50 |
|
||
|
Конфликт обновления в View'ке
|
|||
|---|---|---|---|
|
#18+
Hi demux! Никак не надо блокировать - надо решать конфликт обновления - например предложить "восстановить" эту запись (т.е. заменить по сути операцию Update на Insert - при этом наверное стоит этому человечку дать новый код - дабы уж реально "развязаться" со старыми записями). Другой подход - эмулировать фоксовый флаг Deleted - т.е. реально запись не удалять, а просто ставить флаг что запись "неактивна/удалена" - тогда можно будет проводить и операцию "восстановления". Есть вообще такая схема работы, которая предусматривает ТОЛЬКО использование операций INSERT - при этом Update и Delete тоже по сути делают вставку - просто особыми флагами указывается что же за операция была проведена... Конечно схема более сложна, и если правок много, то будет очень много избыточных записей с "историей изменений" - но для ряда задач это оправдано. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2006, 21:47 |
|
||
|
Конфликт обновления в View'ке
|
|||
|---|---|---|---|
|
#18+
Игорь, спасибо за ответ (я думал никто уже не ответит). Но у меня появились некоторые вопросы по вашему ответу: Где можно посмотреть реализацию (алгоритм, схему работы), которая предусматривает ТОЛЬКО использование операций INSERT (а Update и Delete заменены операцией Insert) т.е. сложную схему с "истрией". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 11:24 |
|
||
|
Конфликт обновления в View'ке
|
|||
|---|---|---|---|
|
#18+
Hi demux! Честно говоря не скажу где есть нормальное описание подобных схем - если уж совсем "припёрло" могу на мыло (дабы не попасть в мусорку для спама стоит использовать осмысленные темы и во From указать помимо адреса ещё и имя - тогда шанс что письмо "пройдёт" заметно возрастает :) ) закинуть некоторые внутренние материалы - но это не есть реализация, и я бы не сказал что там всё описано "простым человеческим языком" - увы :( Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 01:10 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=280&tid=1592578]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 310ms |

| 0 / 0 |
