Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
На форме 2 грида связанных RELATIONом. В ведОмом гриде отображается несколько строк. В Valid одного из полей вставлен REPLACE изменяющий значения в других полях данной записи. Проблема: В первой строке проблем нет - все работает как запланировано. Во всех последующих строках обновление проходит только один раз, при повторном обновлении появляется ошибка Record is not locked. 1 С чего бы это? 2 Как бороться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2004, 17:29 |
|
||
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
Ау-у народ, вы где? За пол-дня ни одного ответа! Хоть чего нибудь скажите. Можете поприкалываться, в этом тоже мысли попадаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 11:08 |
|
||
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
Нет времени подробно копать. Общее направление следующее: При связывании таблиц по RELATION команда REPLACE блокирует не только запись в текущей таблице, но и соответсвующую (связанную) запись в связанной таблицы. А вот снимается ли блокировка - это надо проверить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 14:52 |
|
||
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
авторХоть чего нибудь скажите. Если хоть что-нибудь, то не стоит в Valid запихивать replace. Не для этого он предназначен. ИМХО, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 16:32 |
|
||
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
2 XAndy Вынул REPLACE из Valid положил в LostFocus - результат, как и ожидалось, тот же самый. Подробности: Накладные - ведущая таблица Строки накладных - ведомая RELATION по номеру накладной В пределах одной строки меняю количество и хочу получить сумму, НДС, ... что совсем непонятно все эти дурацкие выходки связаны именно столбцом "Количество" при изменении ставки НДС все считается как положено, а в первой строке вообще никаких неувязочек! Кто нибудь может обьяснить ЧТО В ПРИНЦИПЕ происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 17:08 |
|
||
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
Неужели надо все разжевывать? Не пробовал такое: select (строки накладных) REPLACE ... UNLOCK IN (накладная) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 17:16 |
|
||
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
2 ВладимирМ Пробовал не помогает. Более того ругается именно на отсутствие блокировки в таблице с строками . Конструкция LOCK() - REPLACE ... - UNLOCK ALL почему-то отрабатывает только 1 раз. На второй раз LOCK() дает .F. Я в недоумении. Такие решения работали аж со времен Fox Software, с чего бы им отказывать сейчас? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 09:39 |
|
||
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
Наводящие вопросы: -) Надеюсь, SET SKIP TO для связи НЕ используется? В данном случае - это лишнее. -) Private DataSession ? -) триггер на количество есть? -) транзакция открыта при модификации? Кстати, какая версия FoxPro? Вообще-то, тут хорошо бы пошагово пройтись отладчиком. Посмотреть, что именно выполняется по команде Replace. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 18:16 |
|
||
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
:-) SET SKIP TO для связи естественно НЕ используется :-) Транзакций нет, поскольку локальные таблицы :-( С пунктами "Private DataSession " и "триггер на количество есть" нельзя ли поподробнее. Fox 6.0 или 8.0 результаты одинаковые. PS 1. в принципе я эту проблему обошел, но очень хотелось бы разобраться! 2. возможно многоступенчатые конструкции сейчас строются вообще без RELATOINов, а как? PPS Извините за незнание элементарных вещей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 10:34 |
|
||
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
Ну, идея вобщем-то достаточно простая. Если я правильно понял ситуацию, то при изменении поля "количество" где-то, как-то устанавливается блокировка и НЕ снимается. А при попытке повторно заблокировать идет ругань на ту, не снятую блокировку. Вот я и пытаюсь прикинуть, где эта самая блокировка могла быть установлена. Автоматическая блокировка всегда связана с модификацией данных. Т.е. предположительно, в момент изменения поля "количество" делается попытка модифицировать что-то еще (или FoxPro предполагает, что такая попытка может быть сделана). Но прежде, чем это "что-то" изменить FoxPro обязательно предпримет попытку это "что-то" заблокировать. По окончании изменения автоматически установленная блокировка так же автоматически должна быть снята (исключая открытую транзакцию). Но у тебя она осталась "висеть" Private DataSession - это некая симуляция многопользовательской работы внутри одного сеанса работы с FoxPro. Я правда не проверял, можно ли снять блокировку внутри Private DataSession, если она установлена в другой DataSession. Теоретически - не должно бы. Т.е. если запись заблокирована ДО открытия твоей формы в другой DataSession Триггера - это некая процедура, которая запускается автоматически при попытке сделать определенные виды модификации в таблице. Но триггера работают только с таблицами включенными в базу данных. Т.е. здесь отпадает. Все-таки, главным "подозреваемым" остается RELATION. Нет каких-либо еще связей? Например, по полю "количество" к другим таблицам? По поводу элементарных вещей, посмотрите здесь http://www.foxclub.ru/kb/index.php?sid=37213&aktion=anzeigen&rubrik=004 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 18:35 |
|
||
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
2 ArDo Исключительно прикола ради ;) попробуй дать команду Set MultiLocks On ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 21:18 |
|
||
|
Изменение данных в Grid ???
|
|||
|---|---|---|---|
|
#18+
2 karly™ Спасибо, это установлено всегда 2 ВладимирМ Спасибо - нашел связку между 2 и 3 этажем (oops!) PS ВСЕХ! Авансом с наступающим! (позже поздравить не смогу, разминка начинается). Всем ХОРОШО отпраздновать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 13:52 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=383&tid=1596695]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 269ms |
| total: | 426ms |

| 0 / 0 |
