powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / master-detail-detail FIBPlus
20 сообщений из 20, страница 1 из 1
master-detail-detail FIBPlus
    #39501220
Katya007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет. есть 2 dataSet-а со связью master-detail. у detail-датасета прописано свойство CachedUpdates = true.
теперь потребовалось к существующему detail-у прикрутить еще один detail-датасет с CachedUpdates = true
так вообще можно делать? а то у меня второй detail пока не сохраняет изменения
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501272
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для чего вам функционал CachedUpdates? очень удаленный сервер?
может, вам проще с транзакциями разобраться?
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501291
Katya007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CachedUpdates в моём случае используется для того чтобы изменения не попадали сразу в базу. например, у человека редактируем историю мест его работы. чтобы можно было нажать отмена и ни одно изменение/удаление не сохранилось.
если я это делаю неправильно, расскажите пожалуйста как правильно.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501293
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katya007,

Для этого и существуют транзакции .
Кнопка ОК -> Commit, кнопка Отмена -> Rollback.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501295
Katya007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
понятно, спасибо!
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501449
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДля этого и существуют транзакции.
Кнопка ОК -> Commit, кнопка Отмена -> Rollback.
За такое надо сразу молотком по пальцам.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501531
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюбезныйЗа такое надо сразу молотком по пальцам.
... что характерно, правильного варианта всё равно не представлено.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501533
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpЛюбезныйЗа такое надо сразу молотком по пальцам.
... что характерно, правильного варианта всё равно не представлено.
Длительная пишущая транзакция - плохо.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501539
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpДля этого и существуют транзакции .
Кнопка ОК -> Commit, кнопка Отмена -> Rollback.
Это очень плохой совет.
Кнопка ОК -> StartTransaction-Commit, кнопка Отмена -> Транзакцию даже не стартуем.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501540
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanalekcvpпропущено...

... что характерно, правильного варианта всё равно не представлено.
Длительная пишущая транзакция - плохо.
Расскажи, пожалуйста, в двух словах - чем плохо?
В данном конкретном случае.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501544
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldmi45alekcvpДля этого и существуют транзакции .
Кнопка ОК -> Commit, кнопка Отмена -> Rollback.
Это очень плохой совет.
Кнопка ОК -> StartTransaction-Commit, кнопка Отмена -> Транзакцию даже не стартуем.
Ага, спасибо.
Тогда такой вопрос: вот у меня есть таблица с 6 полями, в которой хранится немного простых записей (пара десятков). При этом есть форма, в которой они редактируются - как быть в такой ситуации? Если, скажем, пользователь поменял некоторые поля у некоторых записей, а за это время часть из них уже поменял другой пользователь, и start-commit вывалилась с ошибкой. Перечитывать изменения и снова менять все?
При этом условие, что все изменения должны либо скопом приниматься либо скопом же отменяться, нельзя часть применить, а часть откатить.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501547
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вторая ситуация: текстовое поле в таблице, размер до 8к знаков (текстовое описание). Пока один пользователь что-то туда пишет большое, второй открыл, исправил ошибку, применил. Первый дописал, а сохранить не может. Тут как быть?
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501548
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katya007если я это делаю неправильно, расскажите пожалуйста как правильно
имхо, "правильнее" было бы сначала почитать, для чего используется кэшированный датасет . Чаще всего этот режим используется, когда нужно "перекинуть" записи из одного датасета в другой на клиенте.
типа того

В вашей постановке задачи я вижу два пути решения проблемы:
1. если вы работаете с DBAware компонентами (например, TDBEdit, TDBDate, TDBMemo и т.д.), то придется стартовать пишущую транзакцию, по окончании которой надо будет либо сохранить изменения (Commit), либо отказаться от них (Rollback). Здесь важно правильно настроить параметры транзакции (нюансы замечательно описаны тут и тут ). В противном случае можно получить кучу неприятностей (дедлоки, накопление "мусорных" записей и др.)
2. если вы используете не DBAware -компоненты (обычные TEdit, TDateTime, TMemo), то здесь все просто. При редактировании грузите в читающей транзакции из базы в эти компоненты значения, изменяете. Если соберетесь сохранять изменения, сделаете это в короткой пишущей транзакции, откажетесь от изменений - просто закроете форму.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501556
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

нужно определиться, что считать правильным, и от этого плясать дальше.
Где-то нужно блокировать ресурс на все время редактирования, где-то - не нужно, где-то важно учитывать время и т.п.
Во многих случаях подходит сценарий "кто последний - тот и папа", но каждый случай уникален.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501560
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторРасскажи, пожалуйста, в двух словах - чем плохо?
В данном конкретном случае.
Про TIP не слышал?
Читай http://www.ibase.ru/ibtrans/
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501561
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюбезныйавторРасскажи, пожалуйста, в двух словах - чем плохо?
В данном конкретном случае.
Про TIP не слышал?
Читай http://www.ibase.ru/ibtrans/
Прочел, и про ТИП тоже.
И где там страшное-то? Читать, пока не станет страшно?
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501565
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глюкнул. Имел в виду идентификатор транзакции при сильно многопользовательской работе.
Длинные пишущие транзакции - всегда зло при многопользовательской работе.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501570
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезный...
Длинные пишущие транзакции - всегда зло при многопользовательской работе.
Прямо уж и всегда? Непонятно.

Вот создал злобный пользователь документ. В длинной-предлинной транзакции. Кому конкретно он этим навредил?
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501573
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

длинные пишущие транзакции в блокировочниках приводят к блокировкам (даже по чтению), в версионниках - к накоплению версий.
...
Рейтинг: 0 / 0
master-detail-detail FIBPlus
    #39501585
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvчччД,

длинные пишущие транзакции в блокировочниках приводят к блокировкам (даже по чтению), в версионниках - к накоплению версий.
Поясни, пожалуйста: в данном конкретном случае 20706848 - сколько именно версий и чего именно в итоге накопится и в чем конкретно состоит зло конкретно от этих версий (чего-то)?
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / master-detail-detail FIBPlus
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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