powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Изменение данных в Grid ???
12 сообщений из 12, страница 1 из 1
Изменение данных в Grid ???
    #32492555
ArDo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На форме 2 грида связанных RELATIONом. В ведОмом гриде отображается несколько строк. В Valid одного из полей вставлен REPLACE изменяющий значения в других полях данной записи.
Проблема:
В первой строке проблем нет - все работает как запланировано.
Во всех последующих строках обновление проходит только один раз, при повторном обновлении появляется ошибка Record is not locked.

1 С чего бы это?
2 Как бороться?
...
Рейтинг: 0 / 0
Изменение данных в Grid ???
    #32493465
ArDo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ау-у народ, вы где?
За пол-дня ни одного ответа! Хоть чего нибудь скажите.


Можете поприкалываться, в этом тоже мысли попадаются
...
Рейтинг: 0 / 0
Изменение данных в Grid ???
    #32494269
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет времени подробно копать. Общее направление следующее:

При связывании таблиц по RELATION команда REPLACE блокирует не только запись в текущей таблице, но и соответсвующую (связанную) запись в связанной таблицы. А вот снимается ли блокировка - это надо проверить.
...
Рейтинг: 0 / 0
Изменение данных в Grid ???
    #32494633
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторХоть чего нибудь скажите.

Если хоть что-нибудь, то не стоит в Valid запихивать replace. Не для этого он предназначен. ИМХО, конечно.
...
Рейтинг: 0 / 0
Изменение данных в Grid ???
    #32494732
ArDo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 XAndy

Вынул REPLACE из Valid положил в LostFocus - результат, как и ожидалось, тот же самый.

Подробности:
Накладные - ведущая таблица
Строки накладных - ведомая
RELATION по номеру накладной
В пределах одной строки меняю количество и хочу получить сумму, НДС, ...
что совсем непонятно все эти дурацкие выходки связаны именно столбцом "Количество" при изменении ставки НДС все считается как положено, а в первой строке вообще никаких неувязочек!

Кто нибудь может обьяснить ЧТО В ПРИНЦИПЕ происходит?
...
Рейтинг: 0 / 0
Изменение данных в Grid ???
    #32494762
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели надо все разжевывать? Не пробовал такое:

select (строки накладных)
REPLACE ...
UNLOCK IN (накладная)
...
Рейтинг: 0 / 0
Изменение данных в Grid ???
    #32496120
ArDo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ВладимирМ

Пробовал не помогает.
Более того ругается именно на отсутствие блокировки в таблице с строками .
Конструкция LOCK() - REPLACE ... - UNLOCK ALL почему-то отрабатывает только 1 раз. На второй раз LOCK() дает .F.

Я в недоумении. Такие решения работали аж со времен Fox Software, с чего бы им отказывать сейчас?
...
Рейтинг: 0 / 0
Изменение данных в Grid ???
    #32497432
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наводящие вопросы:

-) Надеюсь, SET SKIP TO для связи НЕ используется? В данном случае - это лишнее.
-) Private DataSession ?
-) триггер на количество есть?
-) транзакция открыта при модификации?

Кстати, какая версия FoxPro? Вообще-то, тут хорошо бы пошагово пройтись отладчиком. Посмотреть, что именно выполняется по команде Replace.
...
Рейтинг: 0 / 0
Изменение данных в Grid ???
    #32498019
ArDo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:-) SET SKIP TO для связи естественно НЕ используется
:-) Транзакций нет, поскольку локальные таблицы
:-( С пунктами "Private DataSession " и "триггер на количество есть" нельзя ли поподробнее.

Fox 6.0 или 8.0 результаты одинаковые.

PS
1. в принципе я эту проблему обошел, но очень хотелось бы разобраться!
2. возможно многоступенчатые конструкции сейчас строются вообще без RELATOINов, а как?

PPS
Извините за незнание элементарных вещей
...
Рейтинг: 0 / 0
Изменение данных в Grid ???
    #32499358
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, идея вобщем-то достаточно простая. Если я правильно понял ситуацию, то при изменении поля "количество" где-то, как-то устанавливается блокировка и НЕ снимается. А при попытке повторно заблокировать идет ругань на ту, не снятую блокировку. Вот я и пытаюсь прикинуть, где эта самая блокировка могла быть установлена.

Автоматическая блокировка всегда связана с модификацией данных. Т.е. предположительно, в момент изменения поля "количество" делается попытка модифицировать что-то еще (или FoxPro предполагает, что такая попытка может быть сделана). Но прежде, чем это "что-то" изменить FoxPro обязательно предпримет попытку это "что-то" заблокировать. По окончании изменения автоматически установленная блокировка так же автоматически должна быть снята (исключая открытую транзакцию). Но у тебя она осталась "висеть"

Private DataSession - это некая симуляция многопользовательской работы внутри одного сеанса работы с FoxPro. Я правда не проверял, можно ли снять блокировку внутри Private DataSession, если она установлена в другой DataSession. Теоретически - не должно бы. Т.е. если запись заблокирована ДО открытия твоей формы в другой DataSession

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

Все-таки, главным "подозреваемым" остается RELATION. Нет каких-либо еще связей? Например, по полю "количество" к другим таблицам?

По поводу элементарных вещей, посмотрите здесь

http://www.foxclub.ru/kb/index.php?sid=37213&aktion=anzeigen&rubrik=004
...
Рейтинг: 0 / 0
Изменение данных в Grid ???
    #32499509
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ArDo

Исключительно прикола ради ;) попробуй дать команду
Set MultiLocks On
...
Рейтинг: 0 / 0
Изменение данных в Grid ???
    #32502619
ArDo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 karly™
Спасибо, это установлено всегда

2 ВладимирМ
Спасибо - нашел связку между 2 и 3 этажем (oops!)

PS
ВСЕХ! Авансом с наступающим! (позже поздравить не смогу, разминка начинается).
Всем ХОРОШО отпраздновать!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Изменение данных в Grid ???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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