Здравствуйте, RSDN-SM, Вы писали:
RS>Здравствуйте, shelkovnikov, Вы писали:
S>>передавать можно например COM класс (точнее передавать ссылку), содержащий в себе нужный вам объект. Но не рекмендую так как обмен данными между процессами, да потоками одного процесса может быть "тяжелым" (COM маршалинг). Кроме того вам придется повозится с многопоточностью, что при недостатке может приводить к "странным" ошибкам и повисаниям приложений.
S>>как вариант предложил бы реализовать одно приложение с доступом БД, другие ображаются к этому приложению за данным оформленными как нормальные классы или что-то в этом духе. то есть общим сделать не соединение с БД, а нормальный слой доступа.
RS>Спасибо за ответ. COM технология в моё проекте необходима как воздух, и маршалинг не так страшен как Вы его описываете
. Тот вариант, что Вы предлагаете, называется "трёхзвенкой", когда "тонкие" клиенты не работают с СУБД напрямую, а используют для этого отдельное приложение — сервер обработки данных (который и устанавливает связь с СУБД). Этот вариант действительно можно использовать для решения моей задачи, но хотелось бы всё же по другому.
RS>Хороший пример ADO — оно позволяет получить интерфейс connection'а к СУБД. Именно его и передают между процессами через COM. В этом случае клиенты получая его могут обратиться к СУБД уже через существующее соединение, не создавая новое.
тогда создайте свой COM класс как описано в начале моего ответа, и передавайте ссылку на реализованный им интерфейс. одним из свйств класса пусть будет TOraSession (возможно ли это не скажу, так как не приходлось работать с oracle)