
- •Тема 1.Корпоративные информационные системы. Задача интеграции. Корпоративные системы.
- •Модель osi – набор стандартов для построения корпоративной системы
- •Интегрированные и комплексные приложения
- •Задача: общие данные, общие процедур, общие вычислительные ресурсы.
- •Проблемы на пути интеграции
- •Тема 2.Прозрачность. Открытость. Масштабируемость. Концепции аппаратных решений. Определение распределенной системы. Прозрачность.
- •Открытость.
- •Масштабируемость.
- •Параллелизм.
- •Raid-технологии.
- •Концепции аппаратных решений. Мультипроцессоры.
- •Гетерогенные мультикомпьютерные системы.
- •Симметричное мультипроцессирование
- •Кластеры.
- •Тема 3.Двухуровневые, трехуровневые, распределенные одноранговые информационные системы. Виды ис
- •Функциональная нагрузка компонентов в ис
- •Двухуровневые архитектуры
- •Трехуровневые архитектуры
- •Распределенные одноранговые архитектуры
- •Единое информационное пространство. Подход к построению объектно-ориентированной одноранговой информационной системе.
- •Архитектура взаимодействия компонент распределенной ис
- •Тема 4.Обзор методов интеграции. Введение
- •Пути устранения аппаратных различий, кросс – платформенные приложения.
- •Java applets, апплеты.
- •Файлы (буферы) общего доступа.
- •Единый язык доступа к данным (sql).
- •Обмен сообщениями (dde).
- •Удаленный вызов процедур (rpc)
- •Вставка и внедрение объектов
- •Ole (связывание и внедрение объектов), ole Automation.
- •Классификация приложений по отношению к технологии ole (com).
- •ActiveX объекты.
- •Идентификация com объектов.
- •Сравнение com (ActiveX) объектов и java апплетов.
- •Доступ к удаленным объектам (dcom, .Net, corba)
- •Использование командных файлов и скриптов
- •Доступ к базам данных (ado, dao, odbc)
- •Применение web-технологий
- •Именованные каналы
- •Процедуры, функции, передача параметров, область видимости.
- •Типы данных.
- •Вызов макроса с вычисляемым именем
- •Запуск макроса в заданное время
- •Запуск внешней программы, управление ею
- •Вызов api-функций и других библиотечных функций
- •Программное изменение кода.
- •Динамические массивы
- •Объектно-ориентированное программирование Базовые понятия ооп
- •Расширение объектной модели
- •Коллекция
- •Раннее и позднее связывание
- •Дополнительные элементы управления (ActiveX –объекты)
- •Описание программирования в vba, модели com Доступ к вставленным в документ ole-объектам
- •Доступ к внешним com-серверам
- •Вычисляемые свойства, свойства только для чтения.
- •События. Обработчики событий.
- •Использование событий объекта Application
- •Использование диалогов
- •Свойство для программиста.
- •Пользовательские классы. Классы.
- •Класс, объекты которого реагируют на события.
- •Моделирование наследования. Фактическое наследование. WithEvents.
- •Пользовательские события.
- •Как исп польз события
- •Создание экземпляра класса.
- •Автоматическая сборка мусора
- •Уничтожение экземпляра класса
- •???Интерфейсы.
- •Тема 6.???Интеграция при помощи промежуточного буфера
- •Тема 7.Обмен сообщениями. Протокол dde.
- •Задачи интеграции и децентрализации.
- •Фрагментация данных и размещение
- •Язык доступа к данным sql Стандартные команды
- •Язык запросов
- •Изменение данных при помощи sql
- •Изменение структуры базы данных при помощи ddl
- •Выполнение команд изменения структуры, изменения базы данных
- •Расширения Jet 4.0 ansi-92
- •Доступ к базам данных.
- •Доступ к базам данных с помощью odbc.
- •Доступ через odbc из Delpi7.
- •Доступ к базам данных с помощью технологий ado. Соединение, курсор
- •Свойства и методы набора записей (курсора).
- •Вызов отчетов, сформированных в базе данных
- •Пример dao
- •???Доступ к базам данных с помощью технологий dao.
- •Удаленный вызов процедур.
- •Обращение к удаленным объектам. Привязка клиента к объекту. Статическое и динамическое удаленное обращение к методам. Передача параметров. Dce, rmi.
- •Тема 13.Распределенная система объектов corba. Введение.
- •Архитектура системы.
- •Структура связей corba.
- •Исключения corba.
- •Передача параметров.
- •Corba-объекты и серванты.
- •Отображение idl на языки программирования
- •Объектные адаптеры.
- •Транзакции и сервис транзакций в corba.
- •Тема 14.Обзор технологий dcom, .Net Определение
- •Немного истории
- •Решение .Net
- •Модель .Net
- •Обзор двоичных файлов .Net.
Доступ к внешним com-серверам
Для того чтобы поработать с внешним объектом из программы на VBA, следует воспользоваться функциями GetObject или CreateObject или применить ключевое слово New.
Функция CreateObject создает и возвращает ссылку на OLE объект – главный (умалчиваемый) объект запускаемого приложения. В соответствии с COM стандартом такой объект есть у всех приложений, поддерживающих OLE-2. Параметр функции – идентификатор COM-объекта, содержащийся в реестре в разделе HKEY_CLASSES_ROOT. В этом случае можно при описании переменной указать тип Object, что будет соответствовать позднему связыванию. Но практически всегда раннее связывание предпочтительнее.
Dim ex As Excel.Application
Set ex= CreateObject(“Excel.Application”)
MsgBox ex.Name
Можно создать COM-объект по-другому: воспользоваться ключевым словом New. Т.к. после этого ключевого слова необходимо указать имя объектного типа, то сначала необходимо подключить необходимую библиотеку (меню Tools – Refererce). Обратите внимание на то, что при таком способе создания объекта мы используем раннее связывание (и это – хорошо).
Dim ex As Excel.Application
Set ex= New Excel.Application
MsgBox ex.Name
Допустимо сразу указывать слово New при описании переменной.
Dim ex As New Excel.Application
MsgBox ex.Name
Функция GetObject позволяет обратиться к файлу как к ActiveX объекту, запустив при этом, если потребуется, родительское приложение.
Пусть необходимо хранить имена пользователей, открывавших документ, и дату открытия. Можно воспользоваться объектом WSHNetwork, который находится в библиотеке Windows Script Object Model, подключаемой (для раннего связывания) в меню редактора VBA «Tools – Reference».
Dim wh As New IWshRuntimeLibrary.WshNetwork
MsgBox wh.UserName
Вычисляемые свойства, свойства только для чтения.
Процедуры Property можно использовать на уровне форм, стандартных модулей и модулей класса. То есть такие процедуры должны быть использованы вместо Public переменных, если требуется выполнить некоторые действия в тот момент, когда устанавливается значение этой переменной. В отличие от Public переменной Property процедуры могут иметь текст подсказки. Три варианта процедур обеспечивают следующее: Property Let – присваивание значения свойству, Property Get – возвращает значение свойства, Property Set устанавливает ссылку на объект.
Попытаемся разобраться, зачем они нужны. В объектно-ориентированном программировании достаточно тонка грань между методами и свойствами. Предполагается, что метод отражает некоторое действие. Но вдумайтесь, зачем пользователю Вашего объекта знать, что Вы написали программу, которая вычисляет значение некоторого свойства, а не храните это значение прямо в объекте? Рассмотрим пример. Пусть Вы описали объект "работник" и задали внешнее свойство "средняя заработная плата". Пользователь Вашего класса имеет возможность использовать это свойство. А Вы стоите перед выбором: то ли хранить его и пытаться поддерживать его актуальность, то ли вычислять при каждом обращении к нему. Вариант с периодическим перевычислением, состоящий в том, что, например, в начале каждого месяца запускается программа, которая пересчитывает среднюю зарплату для всех, не эффективен, поскольку, вероятно, никто не запросит среднюю зарплату для всех. Выполнять всегда пересчет при запросе тоже не очень хорошо при условии, что в течение месяца может быть неоднократное обращение к средней зарплаты некоторого работника, хотя последняя остается, очевидно, неизменной. Вероятно, наилучшим решением будет применение конструкции property get. Ваши вычисления будут скрыты от пользователя класса, к тому же вы сможете организовать дело наиболее эффективным способом.
Вставьте в проект модуль класса, назовите его worker (работник). В модуле класса опишите два скрытых от пользователя класса свойства и доступную процедуру.
Dim sr As Single, dt As Date
Public Property Get s_ZP() As Single
If Month(dt) < Month(Date) Then
‘здесь расчет средней з/п
dt = Date - (Day(Date) - 1)
End If
s_ZP = sr
End Property
В некоторой прикладной программе будет обращение к свойству s_ZP.
Dim ob As woker
…
MsgBox ob.s_ZP
Еще одна причина использования процедур Property: процедуры могут быть использованы для создания свойств "только для чтения". Подумайте, если вам требуется скрыть некоторое свойство объекта, вы его описываете как Private, если вы хотите предоставить пользователю класса некоторое свойство, вы его описываете как Public. Но при помощи этих описателей нет возможности создать видимое, но не изменяемое свойство. А с помощью процедур Property это сделать несложно: достаточно для некоторого свойства описать Property Get и не описывать процедуру Property Let! Впрочем, можно ее описать, но в ней вежливо уведомить пользователя о недопустимости изменения данного свойства.