Форум Trainsim  

Вернуться   Форум Trainsim > Microsoft Train Simulator > MSTS - Подвижной состав

Результаты опроса: Нужна ли локальная версия БДПС (Microsoft Office Access)?
Да, постоянно обновляю и пользуюсь 18 30.51%
Нет, Online вполне достаточно 21 35.59%
Пользуюсь и той и другой 20 33.90%
Голосовавшие: 59. Вы ещё не голосовали в этом опросе

 
 
Опции темы Опции просмотра
Старый 24.05.2010, 18:38   #11
Zabor
Разработчик
 
Аватар для Zabor
 
Регистрация: 01.02.2008
Адрес: Санкт-Петербург
Сообщений: 18,927
Вы сказали Спасибо: 11,488
Поблагодарили 10,264 раз(а) в 3,837 сообщениях
Zabor хороший собеседник
По умолчанию

Дык это, разделяйте в теме кто, что будет добавлять, для БД оно все хорошо, потом если кто-то добавляет в массовом порядке один вид ПС это же не запрещает другому человеку добавить/исправить несколько записей из этого вида.

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

Сейчас синхронизация в четыре этапа:

1. отбор из присланной таблицы записей, которые небыли модифицированы (все поля равны основной БД), на этом этапе получаем ID этих записей по присланной таблице.

2. отбор подчиненным запросом записей из присланной таблицы с несоответствием ID из 1 этапа (инверсия отбора)
Занесение полученных строк в промежуточную таблицу, по сути это таблица, в которую внесены все модифицированные или новые записи из присланной таблицы.

3. отбор из промежуточной таблицы записей, у которых есть соответствие полей [Name] или [Name_eng] или [Folder] основной БД, эти три поля единственные индивидуальные характеристики единицы ПС и если хотя бы одно совпало - запись считается модифицированной, но все равно нужно смотреть глазами, для чего эти записи выводятся в форму:

* - совпадение ID с основной БД случайно, просто она еще "не поехала" по ID, на втором добавлении поедет =)).

Тут можно наглядно увидеть, что добавлял оператор и синхронизировать текущую БД отдельно по полям или сразу все, при этом форма автоматически переходит на следующую запись.

Отдельно по полям нужно т.к. могут быть ошибки во введенных данных, тогда можно только дополнить/заменить часть полей в текущей БД.

4. аналогично пункту 2 инверсный отбор из промежуточной таблицы по ID присланной базы записей не вошедших в пункт 3, это новые записи, тоже в форму с попыткой предложить подходящие записи из текущей БД, результат - или замена записи или внесение новой.

Сейчас на этапе реализации пункта 4, как реализую практически мгновенно синхронизирую скопившиеся базы, сори за задержку, ни одна запись из присланных не потеряется.

Сложно? Да сложно, но это плата за многопользовательский асинхронный режим, зато делается один раз, потом просто работает, если кто придумает проще - буду признателен, пока упростить не получается.

ps как доделаю вернусь в тему =)).
__________________
Присылайте ваши сценарии в копилку msts.
Опыт - это нечто, что приобретается сразу после того, как это было нужно.
100% не предпринятых попыток обречены на провал.
Zabor вне форума   Ответить с цитированием
 


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 21:21. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim
TopList Нажми для появления дома Trainsim на карте Intermap
Что это?