Народ. Когда-то давно я много и упорно писал на CDD, CFD и немного
на CW 2.0. Теперь понадобилось дописать к старой проге модуль на CW 5.5,
и вот, что я обнаружил : если запустить две копии программы и в одной
из них сделать Insert, то в другой видна пустая добавленная запись (что нормально), но из нее она прекрасно удаляется ! Т.е. никакого блокирования
записи не происходит (в CFD такого не было). Причем после удаления (а глупый
юзер обязательно удалит "лишнюю" запись) окно-форму закрыть не удается,
оно ругается без возможности выхода.
Понятно, что руками это исправляется. Но, может быть, я просто не нажал
какую-нибудь пимпочку ?
driver - Clarion 2.1
Написал: Абагян(52)
Multiuser problem in 55h
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
почитай конференцию, не так давно это очень подробно разжовывалось и предлагалось много вариантов решения данной проблемы.
Andrew Myalin
andrew@arsis.ru
http://mavcla.arsis.ru (MAV Direct ODBC)
ICQ: 10659412
Yahoo group: clarion@yahoogroups.com
(Добавление)
Или совсем просто - при просмотре использовать ключи с атрибутом OPT.
Nick Tsigouro <nick@arsis.ru>
Написал: ClaList(2)
Andrew Myalin
andrew@arsis.ru
http://mavcla.arsis.ru (MAV Direct ODBC)
ICQ: 10659412
Yahoo group: clarion@yahoogroups.com
(Добавление)
"Нормально" только в том смысле, что добавленная запись существует, но ненормально, что ее видят другие пользователи. Поставь на нее фильтр. Можно сделать следующее. В одно (или не только в одно) из обязательных текстовых полей вписать что-то типа "Введите имя пользователя" и сделать фильтр на '~='. И ес-но в валидаторе записи проверить, что юзер ввел туда что-то свое.Теперь понадобилось дописать к старой проге модуль на CW 5.5, и вот, что я обнаружил : если запустить две копии программы и в одной из них сделать Insert, то в другой видна пустая добавленная запись (что нормально), ...
Или совсем просто - при просмотре использовать ключи с атрибутом OPT.
Не происходит. В CFD блокирование было в шаблоне Child, который все делел под транзакцией, и получалась, по сути, однопользовательская система.но из нее она прекрасно удаляется ! Т.е. никакого блокирования записи не происходит (в CFD такого не было). Причем после удаления ...
Странно. Должна вываливаться из формы.(а глупый юзер обязательно удалит "лишнюю" запись) окно-форму закрыть не удается, оно ругается без возможности выхода
Nick Tsigouro <nick@arsis.ru>
Написал: ClaList(2)
Извиняюсь, предварительно просмотрел весь форум - ничего не нашел. Наверное, упало в какой-нибудь архив.
Все обходные маневры понятны. Фильтр почему-то здорово тормозит
обновление страницы, а OPT не пройдет из-за Auto Number.
В общем, нет нормального универсального решения.
Насчет Child в CFD неправда, отродясь им не пользовался. Во
всех стандартных Update-формах отрабатывает нормальный
hold без транзакций - только что проверил. Программа, кстати,
прекрасно работает с 95 года в многопользовательском режиме.
Вот, решил дописать кусок на CW, а тут мелкие пакости всякие.
Написал: Абагян(52)
Все обходные маневры понятны. Фильтр почему-то здорово тормозит
обновление страницы, а OPT не пройдет из-за Auto Number.
В общем, нет нормального универсального решения.
Насчет Child в CFD неправда, отродясь им не пользовался. Во
всех стандартных Update-формах отрабатывает нормальный
hold без транзакций - только что проверил. Программа, кстати,
прекрасно работает с 95 года в многопользовательском режиме.
Вот, решил дописать кусок на CW, а тут мелкие пакости всякие.
Написал: Абагян(52)
В CFD-шаблонах использовалась блокировка текущей редактируемой записи. В CW-версиях от этого ушли.Понятно, что руками это исправляется. Но, может быть, я просто не нажал какую-нибудь пимпочку ?
Поэтому такие вещи, о которых ты пишешь, теперь должны решаться самим разработчиком.
Фильтр, настроенный ТОЛЬКО на отсечение записей, находящихся в процессе добавления, НЕ может сильно сказываться на скорость обновления бровза! Очевидно, что проблема в чем-то другом. Кстати, эту фильтрацию можещь запросто вынести из фильтра VIEW прямо в код, например в точке вставки фильтр по записям. На скорость это практически не повлияет.Все обходные маневры понятны. Фильтр почему-то здорово тормозит обновление страницы, а OPT не пройдет из-за Auto Number.
Но зато удобнее, да и не надо "засорять" сам фильтр VIEW, который должен нести несколько другую функциональность.
Это, как раз, и есть универсальное решение, подходящее практически для всех таблиц.
Можешь еще использовать логическую блокировку добавляемых записей, против которой недавно в этом списке рассылки яростно выступали некоторые коллеги.
Или можешь вернуться к старой схеме и в начале формы поставить код захвата текущей записи.
Как видишь - есть! И, имхо, более нормальные, чем раньше.В общем, нет нормального универсального решения.
=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
Написал: ClaList(2)