Форум: "Базы";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];
ВнизODAC и COM Найти похожие ветки
← →
Note (2006-12-22 16:29) [0]Добрый день,
подскажите, как решить проблему. Имеется группа приложений, которые должны работать с БД (Oracle). Необходимо, чтобы соединение с БД создавалось в одном из них, и все остальные приложения использовали именно его для выполнения запросов к БД. Вопрос: каким образом (если вообще можно) передать ODAC connection (класс TOraSession) между приложениями, используя COM?
← →
Sergey Masloff (2006-12-23 00:42) [1]Это у DOA такая фича была. В ODAC если и можно то недокументировано и с граблями.
← →
Ломброзо © (2006-12-23 01:37) [2]Не надо передавать Connection. Надо передавать рекордсеты. Они маршаллируемые.
← →
Note (2006-12-23 16:11) [3]2 Sergey Masloff
Жаль, а так рассчитывал… =(. У компоненты OraSession есть метод AssignConnect (Source: TOraSession), вот если бы вместо Source были указаны конктеные параметры нужные наследования подключения, а не просто класс, их можно было бы их упаковать на сервере и передать клиенту, чтобы он юзал тот же самый коннект. Исходников нет, чтобы посмотреть.
2 Ломброзо ©
Что даёт передача рекордсетов? Я понимаю, что краткость - сестра таланта, но будьте добры чуть подробнее ;)
← →
Ломброзо © (2006-12-23 21:15) [4]Догадаться несложно - это в итоге нам дает трёхзвенку.
В итоге требование "соединение в одном из них" - превращается в сервер приложений, а "все остальные приложения" превращаются в клиентов сервера приложений. Таким образом, только сервер приложений непосредственно использует соединение с Oracle, выгружая результат запроса в "отсоеднённый" ADODB.Recordset (эта фича поддерживается, если мне не изменяет память, с версии MDAC 2.6) и маршалируя его клиенту по DCOM в виде пакета. Клиент делает в рекордсете изменения и маршаллирует его обратно серверу, который опять-таки открывает соединение с Oracle и производит пакетное (batch) обновление таблицы в соответствии с изменениями в каждой строке рекордсета, то бишь вставку-изменение-удаление записей.
В классическом ADO по такой модели работать тяжеловато, зато в ADO.NET идея отсоединенных наборов данных достигла апогея.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c