www.map-info.ru :: Просмотр темы - работа MI в сети
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  
На страницу 1, 2  След.
 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Shadow_Fighter



Зарегистрирован: 21.02.2007
Сообщения: 13
Откуда: Нижний Новгород

СообщениеДобавлено: Ср Фев 21, 2007 4:56 pm    Заголовок сообщения: работа MI в сети Добавить ответ со ссылкой на данный текст

крик души:)
сабжа собственно не существует как такового. Работаю с Mapinfo уже много лет, и каждый раз рассматривая "Whats new" в очередной версии (вот уже 8.5.1 вышла) ищу "многопользовательский доступ к таблице" - ан нет, нету его. Добавляют непонятные (web soap xml)-based примочки, wms, wfs и хрен пойми что еще. Обещают максимальную производительность Spatialware и Oracle - вот только какой ценой? Ставить sql server+spatialware+париться с odbc только чтобы общую карты с 2х компов в сети смотреть и ИЗМЕНЯТЬ ??? (про Oracle вообще молчу:)

это вступление. Сабж: не у кого не возникало потребности в организации сетевого доступа к таблицам MI? Например, одним из решений было бы написать прогу на том же mapbasic+к-л внешние модули, которая в реальном времени синхронизировала например 2 копии одной и той же таблицы на разных компах. Опыт программирования на Mapbasic у меня есть и в принципе такую штуку сделать вполне реально. Вот только может задача уже решена к-л более простым и надежным способом? Если нет, то есть ли желающие замутить совместный проект этой проги? Пишите
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Нестеров Валерий



Зарегистрирован: 21.03.2006
Сообщения: 492

СообщениеДобавлено: Ср Фев 21, 2007 5:42 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Такое отрицательное свойство имеют любые программы, хранящие данные в файловом формате. Возьмите те же Word или Excel. И если было бы все так просто, то уже давно сделали что-нибудь. Но на самом деле при практической реализации этого возникает много подводных камней. Так что, многопользовательский режим только с СУБД. Можно взять Oracle-MapInfo - никаких ODBC и Spatialware.
_________________
Жизнь прекрасна!i
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
asgs



Зарегистрирован: 22.08.2006
Сообщения: 21
Откуда: Новосибирск

СообщениеДобавлено: Чт Фев 22, 2007 7:25 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Была шальная мысль зацепить MapInfo с MySQL, через внешние модули, естественно. Пока думаю дальше.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Shadow_Fighter



Зарегистрирован: 21.02.2007
Сообщения: 13
Откуда: Нижний Новгород

СообщениеДобавлено: Чт Фев 22, 2007 8:56 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

В случае c oracle опять же все упирается в громоздкость и неудобство развертывания, а при установке в организации - еще и с лицензированием (сколько стоит лицензионный оракл - подскажите ка :roll: ) Между тем, совместный доступ нужен не для каких то супермегакорпораций, с кучей серверов итд (где как раз оракл рулит), а для сетки из максимум 20 компов, а минимум из 2х.

Дык вот какая идея: базу сделать на mdb (он же jet, он же access), благо это на компах с виндой уже есть и дополнительно никаких прог ставить не придется, написать на mapbasic'e прогу для кодирования и декодирования объекта в текст (например "point x=333 y=444 symbol xxx") и текстовые описания объектов хранить в mdb' шной базе. При запуске проги читать access и перегонять текстовые описания обратно в тип obj. Это я сделать могу. Вот только при большом объеме базы будут дикие тормоза. Поэтому надо как-то запрашивать не все объекты а только добавленные и измененные и обрабатывать только их. Вот с этим как раз и беда - access знаю посредственно, и как сделать такой запрос если кто знает - подскажите
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
asgs



Зарегистрирован: 22.08.2006
Сообщения: 21
Откуда: Новосибирск

СообщениеДобавлено: Чт Фев 22, 2007 9:23 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Shadow_Fighter писал(а):


Дык вот какая идея: базу сделать на mdb (он же jet, он же access), благо это на компах с виндой уже есть и дополнительно никаких прог ставить не придется, написать на mapbasic'e прогу для кодирования и декодирования объекта в текст (например "point x=333 y=444 symbol xxx") и текстовые описания объектов хранить в mdb' шной базе. При запуске проги читать access и перегонять текстовые описания обратно в тип obj. Это я сделать могу. Вот только при большом объеме базы будут дикие тормоза. Поэтому надо как-то запрашивать не все объекты а только добавленные и измененные и обрабатывать только их. Вот с этим как раз и беда - access знаю посредственно, и как сделать такой запрос если кто знает - подскажите


При перегоне объекта в текст и обратно дикие тормоза начнутся даже на небольшой базе, к тому же стоит учесть, что Access - локальная БД, т.е. нифига не лучше MI. Видел я одну ГИС, сделанную под Access и даже писал под нее пару конверторов (если нужно конкретно, то это МаГИС от СибГеоИнформ), так вот - при работе с ней в сети возникает очень много головняков. ИМХО, основная проблема при адаптации MapInfo под сеть - сохранить простоту (и скорость, насколько возможно) работы MI с данными. С Access, опять же ИМХО, тут ничего не светит.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Shadow_Fighter



Зарегистрирован: 21.02.2007
Сообщения: 13
Откуда: Нижний Новгород

СообщениеДобавлено: Чт Фев 22, 2007 9:36 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

атогда такой момент: можно попробовать "выдрать" из MI переменную типа obj в виде некого массива двоичных данных (как это сделать если честно - без понятия), и эти данные без конвертации сохранять в сетевой БД. Это реально?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
asgs



Зарегистрирован: 22.08.2006
Сообщения: 21
Откуда: Новосибирск

СообщениеДобавлено: Чт Фев 22, 2007 9:42 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Просто выдрать - вряд ли, зато можно без проблем создать свой двоичный пакет в нужном формате, с которым уже можно делать все, что в голову придет. Основная сложность - процесс синхронизации данных локального экземпляра MI и сетевой БД. Вот над этим я сейчас голову и грею :?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Shadow_Fighter



Зарегистрирован: 21.02.2007
Сообщения: 13
Откуда: Нижний Новгород

СообщениеДобавлено: Чт Фев 22, 2007 9:54 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

asgs писал(а):
создать свой двоичный пакет в нужном формате
это опять же конвертить? то бишь использовать стандартные функции MI для получения ТЕКСТОВОЙ инфы по объекту, которую кодировать в свой двоичный формат? В общем пока что идея - попробовать написать dll-ку, и передать ей переменную типа obj. В самой dll'ке эту переменную объявить как pointer - будет ли работать и что в действительности передастся - вечером проверю и расскажу
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Shadow_Fighter



Зарегистрирован: 21.02.2007
Сообщения: 13
Откуда: Нижний Новгород

СообщениеДобавлено: Чт Фев 22, 2007 9:58 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

asgs писал(а):
Основная сложность - процесс синхронизации данных локального экземпляра MI и сетевой БД
А я думал, что это решено штатными средствами сетевой БД (если нет, тогда все вообще сложно - как раз с сетемыми БД дела не имел и смутно представляю что там и как)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
asgs



Зарегистрирован: 22.08.2006
Сообщения: 21
Откуда: Новосибирск

СообщениеДобавлено: Чт Фев 22, 2007 10:40 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Shadow_Fighter писал(а):
А я думал, что это решено штатными средствами сетевой БД


Ага, решено... в Oracle Spatial :shock:
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Shadow_Fighter



Зарегистрирован: 21.02.2007
Сообщения: 13
Откуда: Нижний Новгород

СообщениеДобавлено: Чт Фев 22, 2007 10:44 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

:) сегодня поковыряю сабж и расскажу о впечатлениях
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
asgs



Зарегистрирован: 22.08.2006
Сообщения: 21
Откуда: Новосибирск

СообщениеДобавлено: Чт Фев 22, 2007 10:46 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Shadow_Fighter писал(а):
asgs писал(а):
создать свой двоичный пакет в нужном формате
это опять же конвертить? то бишь использовать стандартные функции MI для получения ТЕКСТОВОЙ инфы по объекту, которую кодировать в свой двоичный формат?


Отнюдь, в смысле ни фига подобного. Функциями MB информация по объекту получается как раз двоичная, если не считать некоторых значений типа названия шрифта в тектовом объекте, так что конвертить придется, но между двумя ДВОИЧНЫМИ форматами, что, согласитесь, гораздо быстрее.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Shadow_Fighter



Зарегистрирован: 21.02.2007
Сообщения: 13
Откуда: Нижний Новгород

СообщениеДобавлено: Пн Апр 09, 2007 11:27 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

идиотская идея, но работает: выкладываем таблицы на расшаренную папку, на каждой из работаюших с таблицами MI-шек запускаем mbx-скрипт, который эти таблицы через определенный промежуток времени проверяет (секунд 5-10) и если таблица unsaved, делает ей commit interactive.

ПРИЧЕМ:
например, на одном компе нарисовали в общей таблице полигон, тогда он появляется на всех остальных после regen'а окна!!: например при сдвиге или масштабировании, в то время как при использовании spatialware чтобы увидеть вновь созданный объект, нужно выполнить синхронизацию с сервером!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
sunzh



Зарегистрирован: 13.05.2006
Сообщения: 19

СообщениеДобавлено: Вт Ноя 06, 2007 9:02 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Добрый вечер (или какое там время суток) обитателям форума. Давненько не заходил. Зашел и сразу больная тема. По существу выше написанного есть следующие соображения:

Есть у таблиц MI интересные режимы редактирования устанавливаемые оператором MB Set Table

Set table 'tablename' fast edit On
Set table 'tablename' Undo Off

МИ перестает записывать изменения данной таблицы в файл транзакции, начинает записывать их прямо в файл. А как известно недоступна таблица для редактирования лишь пока есть несохраненные изменения сделанные другим пользователем. Чем жертвуем - отменой последнего действия, восстановлением таблицы. Что имеем - многопользовательский доступ. Удачи в экспериментах...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Shadow_Fighter



Зарегистрирован: 21.02.2007
Сообщения: 13
Откуда: Нижний Новгород

СообщениеДобавлено: Вт Ноя 06, 2007 11:21 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

интересная идея, проверим, спс)
а вот разработчики обещают технологию клиент-сервер в МИ 10, правда когда будет эта МИ 10 и к-л подробности не сообщаются. Ждем-с ....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru