Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.18;
Скачать: 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 вся ветка

Текущий архив: 2007.03.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
15-1171895181
Riply
2007-02-19 17:26
2007.03.18
Не знаю что делать. Помогите.


2-1172646093
San1
2007-02-28 10:01
2007.03.18
Дуга окружности


9-1145638692
ArtemESC
2006-04-21 20:58
2007.03.18
Стекло в 3D


15-1171726858
nali
2007-02-17 18:40
2007.03.18
Посоветуте прогу для чтения с порченного DVD


2-1172222511
Steep
2007-02-23 12:21
2007.03.18
Время