SASGIS - SAS.Планета
View Issue Details
0002519SAS.ПланетаРефакторингpublic29-10-2014 10:1730-12-2021 08:58
vdemidov 
 
normalminorN/A
confirmedopen 
100707 
26xxxx 
0002519: Добавить In-Mem базу меток для хранения временных меток
Сделать временную базу для меток, которая будет жить в памяти до перезапуска программы. Отображаться должна как подкатегория основной базы "Временные метки". Туда должны попадать метки загруженные через параметры командной строки или через сообщения. Перед закрытием программы нужно предупреждать о наличии там меток. Должен работать Drag&Drop с остальными категориями меток.
No tags attached.
has duplicate 0003283closed vdemidov Временная запись данных в базу (с правами для чтения) 
child of 0000033resolved zed Загрузка меток через командную строку 
Issue History
29-10-2014 10:17vdemidovNew Issue
29-10-2014 10:17vdemidovIssue generated from: 0000033
29-10-2014 10:17vdemidovRelationship addedchild of 0000033
29-10-2014 10:18vdemidovReproducibilityhave not tried => N/A
29-10-2014 10:18vdemidovStatusnew => confirmed
29-10-2014 10:18vdemidovPlatformЛюбая =>
29-10-2014 10:21vdemidovNote Added: 0014771
21-01-2015 10:39vdemidovTarget Version150915 => 151010
04-10-2015 15:30vdemidovTarget Version151010 => 151111
02-11-2015 15:25zedNote Added: 0016687
02-11-2015 16:15vdemidovNote Added: 0016688
02-11-2015 17:14zedNote Added: 0016689
03-11-2015 08:23vdemidovNote Added: 0016691
03-11-2015 10:23zedNote Added: 0016697
03-11-2015 10:48vdemidovNote Added: 0016699
06-11-2015 08:19vdemidovTarget Version151111 => 191221
08-10-2017 10:37zedRelationship addedchild of 0003283
25-10-2017 21:08stepanxxxNote Added: 0018134
26-10-2017 18:37zedNote Added: 0018135
26-10-2017 20:17stepanxxxNote Added: 0018136
26-10-2017 20:20zedNote Added: 0018137
26-10-2017 20:25stepanxxxNote Added: 0018138
27-10-2017 06:49zedNote Added: 0018139
27-03-2019 08:17vdemidovRelationship replacedhas duplicate 0003283
23-07-2019 16:56vdemidovTarget Version191221 => 211230
30-12-2021 08:58zedTarget Version211230 => 26xxxx

Notes
(0014771)
vdemidov   
29-10-2014 10:21   
В общем, пример для подражания Google Earth
(0016687)
zed   
02-11-2015 15:25   
Завести ещё одну глобальную переменную типа FMarkSystemTemp: IMarkSystem и всюду где есть обращение к нормальной базе меток, добавить и эту? По сути, там не так уж и много мест, где оно используется. Или можно сделать некий IMarkSystemProvider у которого можно будет попросить In-Memory БД и обычную БД (а то и несколько обычных, если сильно захотеть).

Само хранилище в памяти легко добавляется в ORM метках, там достаточно SQLite3 открывать с параметром :memory:, вместо пути к файлу. Соответственно, в IMarkSystem нужно будет добавить признак, в каком режиме его открывать.
(0016688)
vdemidov   
02-11-2015 16:15   
ИМХО проще из SML базы выковырять откусив всю работу с xml
(0016689)
zed   
02-11-2015 17:14   
Это вообще вопрос вторичный, главное сделать обвязку уровнем выше и посмотреть какие грабли вылезут.
(0016691)
vdemidov   
03-11-2015 08:23   
> Завести ещё одну глобальную переменную типа FMarkSystemTemp: IMarkSystem и всюду где есть обращение к нормальной базе меток, добавить и эту?
А может спрятать это все внутри IMarkSystem? Пусть для остальных частей программы это выглядит как одна база меток. Нужно только при тихом импорте (через командную строку или сообщение) правильно указывать категорию. А уже подсистема меток сама определит в какую из физических баз запихать конкретные метки. Да и при отображении в менеджере меток, лучше что бы сама система объединяла дерево категорий разных баз.
(0016697)
zed   
03-11-2015 10:23   
По-моему, так не получится или получится слишком сложно. Во-первых, нам надо чётко знать, пустая временная БД при закрытии программы или нет, чтобы предупредить пользователя. Во-вторых, при перемещении метки из временной базы в нормальную, нужно делать insert вместо обновления, т.е. нужно отслеживать, что вот эта категория на самом деле находится в другой БД, а не в текущей.

И ещё, мне кажется, чтобы однозначно идентифицировать принадлежность меток, нам придётся расширить интерфейс IMarkID и добавить туда uid метки и БД + тоже самое сделать и для IMarkCategory.
(0016699)
vdemidov   
03-11-2015 10:48   
> Во-первых, нам надо чётко знать, пустая временная БД при закрытии программы или нет, чтобы предупредить пользователя.
Эту проверку делать все равно добавлять. Сейчас нет способа узнать пустая база или нет.

> Во-вторых, при перемещении метки из временной базы в нормальную, нужно делать insert вместо обновления, т.е. нужно отслеживать, что вот эта категория на самом деле находится в другой БД, а не в текущей.
Это придется делать в любом случае, если ты не хочешь выделить временную базу вообще в отдельный ГУИ без возможности драг энд дропа между базами.
А так вся логика поддержки временной базы будет сосредоточена в одном классе.

> И ещё, мне кажется, чтобы однозначно идентифицировать принадлежность меток, нам придётся расширить интерфейс IMarkID и добавить туда uid метки и БД + тоже самое сделать и для IMarkCategory.
Возможно. И пусть лучше вся эта кухня прячется внутри одного класса, а не будет размазана по всей программе
(0018134)
stepanxxx   
25-10-2017 21:08   
Откликнитесь! Действительно данная функция нужна!
(0018135)
zed   
26-10-2017 18:37   
Вы готовы заплатить за это сколько-нибудь денег?
(0018136)
stepanxxx   
26-10-2017 20:17   
На ya.деньги смогу донатить?
(0018137)
zed   
26-10-2017 20:20   
У меня только вебмани. Сколько предлагаете?
(0018138)
stepanxxx   
26-10-2017 20:25   
Говорилось про сколько-нибудь! (выше). А теперь от количества зависит выполнение хотелки? Отсюда вопрос - сколько? Ну и номер WMR
(0018139)
zed   
27-10-2017 06:49   
Я просто уточнял, готовы ли вы вообще к тому, что за это придётся платить.

Готов взяться за эту хотелку за 3000 рублей. Предоплата. За номером кошелька обращайтесь ко мне на почту: [email protected].