Здравствуйте, shelkovnikov, Вы писали:
S>передавать можно например COM класс (точнее передавать ссылку), содержащий в себе нужный вам объект. Но не рекмендую так как обмен данными между процессами, да потоками одного процесса может быть "тяжелым" (COM маршалинг). Кроме того вам придется повозится с многопоточностью, что при недостатке может приводить к "странным" ошибкам и повисаниям приложений.
S>как вариант предложил бы реализовать одно приложение с доступом БД, другие ображаются к этому приложению за данным оформленными как нормальные классы или что-то в этом духе. то есть общим сделать не соединение с БД, а нормальный слой доступа.
Спасибо за ответ. COM технология в моё проекте необходима как воздух, и маршалинг не так страшен как Вы его описываете

. Тот вариант, что Вы предлагаете, называется "трёхзвенкой", когда "тонкие" клиенты не работают с СУБД напрямую, а используют для этого отдельное приложение — сервер обработки данных (который и устанавливает связь с СУБД). Этот вариант действительно можно использовать для решения моей задачи, но хотелось бы всё же по другому.
Хороший пример ADO — оно позволяет получить интерфейс connection'а к СУБД. Именно его и передают между процессами через COM. В этом случае клиенты получая его могут обратиться к СУБД уже через существующее соединение, не создавая новое.