Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.029 c
15-1172120397
Loginov Dmitry
2007-02-22 07:59
2007.03.18
Утечка памяти при работе с потоками


10-1130594049
sanich__
2005-10-29 17:54
2007.03.18
AcroPDF


15-1172072131
Calibr
2007-02-21 18:35
2007.03.18
OpenGL библиотеки


2-1172596618
ы
2007-02-27 20:16
2007.03.18
классы и записи


15-1171857189
Slider007
2007-02-19 06:53
2007.03.18
С днем рождения ! 17 февраля




   Наверх