Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.46 MB
Время: 0.043 c
3-1167039441
novill
2006-12-25 12:37
2007.03.18
IB 7.5 Напомните синтаксис использования функции в UPDATE запросе


15-1172136766
WhiteBarsik
2007-02-22 12:32
2007.03.18
переход с Delphi7 на DeveloperStudio 2006


15-1171633571
vasIZmax
2007-02-16 16:46
2007.03.18
История Нового времени


2-1172213855
jappak
2007-02-23 09:57
2007.03.18
ТЕКСТОВЫЙ ФОРМАТ


2-1172146584
ANTPro
2007-02-22 15:16
2007.03.18
SetCapture





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский