Внешнее соединение (COM)

1. Agapov_Stas 1 24.12.14 17:36 Сейчас в теме
Такой вопрос
если создавать внешнее соединении, то необходимо сделать следующее
Соединение = Новый COMObject("V83.COMConnector");

ну и дальше заполнить, подключиться и работать с ним
Возник такой вопрос - возможно ли создавать внешнее соединении как глобальную переменную и "поднимать соединение" регламентным заданием, а пользователи подключаются к базе используя уже созданное соединение, а не создавая постоянно новое?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. mentozavr 71 24.12.14 20:22 Сейчас в теме
(1) Agapov_Stas, Уважаемый я работаю с данными соединениями и организовал след образом:
при запуске создается глобальная переменная, как у вас Соединение = Новый COMObject("V83.COMConnector") только в начале объявляете соединение экспорной.
дальше гже надо можете использовать и тягать из нужной вам базы что хотите
6. Agapov_Stas 1 25.12.14 10:39 Сейчас в теме
(5) mentozavr, но я так понимаю, это для одного пользователя? Если зайдет в это время в базу второй пользователь, то для него создастся еще одно подключение
А в вопросе спрашивается - как создать одно подключение, чтоб им пользовались несколько пользователей?
Как создать экспортное подключение - вообще не проблема - при старте инициализируешь, а дальше работаешь - но вот в чем проблема - если я запущу 10 пользователей, то будет создано 10 подключений!
8. Boneman 301 25.12.14 11:27 Сейчас в теме
(6) Agapov_Stas,
А в вопросе спрашивается - как создать одно подключение, чтоб им пользовались несколько пользователей?

как вы себе это представляете ? ))))) Нет конечно.
Все переменные инициализируются в рамках сеанса.

Можно конечно покопать в сторону внешних источников данных, но к ним также подключатся надо в каждом сеансе.

ИМХО, но затея гиблая, и годится разве что, для маленьких баз, с ограниченным числом пользователей.
Ничего страшного не вижу, в том, если пользователь - при формировании какого то конкретного отчета или обработки, подождет пару секунд ее инициализации с удаленной базой.
А вешать это принудиловкой всем, кому надо и кому не надо, да мало ли что там случится - не подключится, или отвалится...мне такое решение чуждо
9. Agapov_Stas 1 25.12.14 11:48 Сейчас в теме
(8) Boneman, ну если разбираться более детально с этим вопросом, то
при формировании какого то конкретного отчета или обработки, подождет пару секунд ее инициализации с удаленной базой

Время на подключение определяется структурой базы, к которой подключаешься. Если это УПП, то время на подключение одно, если это самописная конфигурация с одним документом, то подключается слету.
Поэтому и возник такой вопрос
10. mentozavr 71 25.12.14 22:19 Сейчас в теме
(9) Agapov_Stas, незнаю как, ноу меня была большущая организация с числом пользователей больше 100. пользаки коннектились к упп и усхп. обе конфы тяжеленные. коннект происходил за секунды и сеть не нагружал. при инициализации соединение поднималось. а при выход рушилось.
7. PetroP 25.12.14 10:58 Сейчас в теме
(5) mentozavr, во-первых, это не то. Это т. н. "соединитель". "Соединение", это, скорее, Соединитель.Connect(), т. е. то, на что уходит время, которое и необходимо сэкономить, если я правильно понимаю задачу.
Во-вторых, не представляю пока, как переменную сделать для всех пользователей.
11. PhoenixAOD 62 26.12.14 03:31 Сейчас в теме
(1) Agapov_Stas, а что вам мешает это дело через батник стартовать по расписанию?
12. Agapov_Stas 1 26.12.14 16:03 Сейчас в теме
(11) PhoenixAOD, Стартовать по расписанию вообще ничего не мешает (и вопрос вообще не в этом !). Вопрос вот в чем - как создать ОДНО постоянное подключение к базе приемнику, чтоб им пользовались все пользователи.
Я так понимаю, что такое реализовать не получится (((
2. PetroP 24.12.14 17:44 Сейчас в теме
Не совсем понял, что значит
"поднимать соединение" регламентным заданием

но создать соединитель, сделать соединение, а потом им пользоваться можно. Ресурсов не много займет.
4. Agapov_Stas 1 24.12.14 17:49 Сейчас в теме
(2) PetroP, "поднимать соединение" - подразумевается проверять глобальную переменную "Соединение" и если оно не равно "Внешнее соединение", то подключать его заново.

но создать соединитель, сделать соединение, а потом им пользоваться можно. Ресурсов не много займет.

Дело в том, что не один пользователь будет подключаться к другой базе по COM, а около 10ти и для каждого создавать отдельное соединение не очень хочется ...
если какие то варианты, чтоб создать одно соединение для базы, а пользоваться им могли несколько пользователей ?
3. Степной 27 24.12.14 17:45 Сейчас в теме
Да, как-то на 8.1 такое делали. Единственное, чуть дольше запуск будет - на время установки соединения.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот