Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / master-detail-detail FIBPlus / 20 сообщений из 20, страница 1 из 1
07.08.2017, 13:59:11
    #39501220
Katya007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
master-detail-detail FIBPlus
привет. есть 2 dataSet-а со связью master-detail. у detail-датасета прописано свойство CachedUpdates = true.
теперь потребовалось к существующему detail-у прикрутить еще один detail-датасет с CachedUpdates = true
так вообще можно делать? а то у меня второй detail пока не сохраняет изменения
...
Рейтинг: 0 / 0
07.08.2017, 14:56:32
    #39501272
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
master-detail-detail FIBPlus
для чего вам функционал CachedUpdates? очень удаленный сервер?
может, вам проще с транзакциями разобраться?
...
Рейтинг: 0 / 0
07.08.2017, 15:10:53
    #39501291
Katya007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
master-detail-detail FIBPlus
CachedUpdates в моём случае используется для того чтобы изменения не попадали сразу в базу. например, у человека редактируем историю мест его работы. чтобы можно было нажать отмена и ни одно изменение/удаление не сохранилось.
если я это делаю неправильно, расскажите пожалуйста как правильно.
...
Рейтинг: 0 / 0
07.08.2017, 15:13:38
    #39501293
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
master-detail-detail FIBPlus
Katya007,

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

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

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

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

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

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

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


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