- •Корпоративные информационные системы. Задача интеграции. Корпоративные системы.
- •Модель osi – набор стандартов для построения корпоративной системы
- •Интегрированные и комплексные приложения
- •Задача: общие данные, общие процедур, общие вычислительные ресурсы.
- •Проблемы на пути интеграции
- •Прозрачность. Открытость. Масштабируемость. Концепции аппаратных решений. Определение распределенной системы. Прозрачность.
- •Открытость.
- •Масштабируемость.
- •Raid-технологии.
- •Параллелизм.
- •Концепции аппаратных решений. Мультипроцессоры.
- •Гетерогенные мультикомпьютерные системы.
- •Симметричное мультипроцессирование
- •Кластеры.
- •Двухуровневые, трехуровневые, распределенные одноранговые информационные системы. Виды ис
- •Функциональная нагрузка компонентов в ис
- •Двухуровневые архитектуры
- •Трехуровневые архитектуры
- •Распределенные одноранговые архитектуры
- •Единое информационное пространство. Подход к построению объектно-ориентированной одноранговой информационной системе.
- •Архитектура взаимодействия компонент распределенной ис
- •Обзор методов интеграции. Введение
- •Пути устранения аппаратных различий, кросс – платформенные приложения.
- •Java applets, апплеты.
- •Файлы (буферы) общего доступа.
- •Единый язык доступа к данным (sql).
- •Обмен сообщениями (dde).
- •Удаленный вызов процедур (rpc)
- •Вставка и внедрение объектов
- •Ole (связывание и внедрение объектов), ole Automation.
- •Классификация приложений по отношению к технологии ole (com).
- •ActiveX объекты.
- •Идентификация com объектов.
- •Сравнение com (ActiveX) объектов и java апплетов.
- •Доступ к удаленным объектам (dcom, .Net, corba)
- •Использование командных файлов и скриптов
- •Доступ к базам данных (ado, dao, odbc)
- •Применение web-технологий
- •Именованные каналы
- •Объектно-ориентированное программирование в vba Среда программирования. Типы данных. Процедуры. Окно проекта, окно свойств, окно кода, окно немедленно выполняемых команд, окно контрольных значений.
- •Процедуры, функции, передача параметров, область видимости.
- •Типы данных.
- •Вызов макроса с вычисляемым именем
- •Запуск макроса в заданное время
- •Запуск внешней программы, управление ею
- •Вызов api-функций и других библиотечных функций
- •Программное изменение кода.
- •Динамические массивы
- •Объектно-ориентированное программирование Базовые понятия ооп
- •Расширение объектной модели
- •Коллекция
- •Раннее и позднее связывание
- •Дополнительные элементы управления (ActiveX –объекты)
- •Описание программирования в vba, модели com Доступ к вставленным в документ ole-объектам
- •Доступ к внешним com-серверам
- •Вычисляемые свойства, свойства только для чтения.
- •События. Обработчики событий.
- •Использование событий объекта Application
- •Использование диалогов
- •Свойство для программиста.
- •Пользовательские классы. Классы.
- •Класс, объекты которого реагируют на события.
- •Моделирование наследования. Фактическое наследование. WithEvents.
- •Пользовательские события.
- •Как исп польз события
- •Создание экземпляра класса.
- •Автоматическая сборка мусора
- •Уничтожение экземпляра класса
- •???Интерфейсы.
- •???Интеграция при помощи промежуточного буфера
- •Обмен сообщениями. Протокол dde.
- •Задачи интеграции и децентрализации.
- •Фрагментация данных и размещение
- •Язык доступа к данным sql Стандартные команды
- •Язык запросов
- •Изменение данных при помощи sql
- •Изменение структуры базы данных при помощи ddl
- •Выполнение команд изменения структуры, изменения базы данных
- •Расширения Jet 4.0 ansi-92
- •Доступ к базам данных.
- •Доступ к базам данных с помощью odbc.
- •Доступ через odbc из Delpi7.
- •Доступ к базам данных с помощью технологий ado. Соединение, курсор
- •Свойства и методы набора записей (курсора).
- •Вызов отчетов, сформированных в базе данных
- •Пример dao
- •???Доступ к базам данных с помощью технологий dao.
- •???Доступ к базам данных с помощью web технологий.
- •Удаленный вызов процедур.
- •Обращение к удаленным объектам. Привязка клиента к объекту. Статическое и динамическое удаленное обращение к методам. Передача параметров. Dce, rmi.
- •Распределенная система объектов corba. Введение.
- •Архитектура системы.
- •Структура связей corba.
- •Исключения corba.
- •Передача параметров.
- •Corba-объекты и серванты.
- •Отображение idl на языки программирования
- •Объектные адаптеры.
- •Транзакции и сервис транзакций в corba.
- •Обзор технологий dcom, .Net Определение
- •Немного истории
- •Решение .Net
- •Модель .Net
- •Обзор двоичных файлов .Net.
Раннее и позднее связывание
Среда VBA позволяет не описывать переменные или приводить только частичное описание: указывается область видимости без указания типа. По-видимому, эта возможность помогает быстро написать маленькую одноразовую программку. В любом другом случае переменные необходимо описывать полностью!
Имена переменных и объектов должны быть осмысленными и такими, чтобы они быстрее находились в выпадающем по Ctrl+J списке доступных объектов. Рекомендуется следующий подход: все имена должны быть составлены из латинских букв и цифр, причем первый символ – буква, имена элементов управления и других ActiveX объектов должны начинаться с оставшихся заглавных букв типа (то есть вид объекта), затем знака подчеркивания «_», затем – осмысленное название.
Описывая переменную и указывая ее тип, вы, во-первых, ограждаете себя от ошибок, т.к. никогда не получится так, что разным сущностям вы нечаянно дали одинаковые имена. Во-вторых, вы, вообще говоря, экономите память, т.к. не типизированные переменные автоматически приобретают тип Variant, занимая при этом больше места, чем необходимо. Наконец, в-третьих, подсказчик доступных объектов может помогать вам, подсказывая только объекты тех типов, которые могут использоваться в текущем месте. Правда, в среде VBA нет такого ограничения.
Работая с объектами на VBA можно воспользоваться одним из двух возможных способов: механизмом раннего связывания и механизмом позднего связывания. При раннем связывании Вы при описании сразу указываете тип объектной переменной. Результат раннего связывания состоит в том, что далее редактор VBA (если Вы нажмете Ctrl+J) подсказывает Вам свойства и методы этого объекта.
При позднем связывании в описании переменной вы указываете тип Object. При этом вы сообщаете транслятору (компилятору), что это объектная переменная, но ничего конкретного о структуре объекта не сообщаете. Очевидно, что после такого описания редактор не в состоянии подсказать вам свойства и методы этого объекта. Только при выполнении программы Вы можете решить, на какой именно объект будет ссылаться эта объектная переменная, присвоив объектной переменной некоторый объект.
Преимущество позднего связывания состоит в том, что с помощью одной и той же объектной переменной Вы можете обрабатывать объекты разных типов. Впрочем, вам все равно в программе придется разобраться с тем, что это за объект. Несколько более реальный пример преимущества следующий: если вы в программе формируете экземпляр при помощи функции GreateObject, то, вероятно, вы не знаете, объект какого типа вы получите. В этом случае можно сначала описать переменную типа Object, а затем в отладчике выполнить оператор с GreateObject и посмотреть в окне Watch получившийся тип переменной. Затем следует прервать выполнение программы и указать верный тип вместо Object.
Если речь идет о внешних объектах, то для того чтобы редактор «узнал» эти объекты, следует сообщить ему, в какой библиотеке лежит описание и код объекта. То есть необходимо подключить в пункте Tools – References требуемые библиотеки .dll, .ocx и т.п. В частности, если в скрипте к Word-документу вы хотите обратиться к Excel-документу, необходимо в появившемся списке библиотек найти Microsoft Excel 12.0 Object Library. Версия библиотеки у вас может быть другая!
Необходимо заметить, что не существует хорошего способа определить, в какой библиотеке находится нужный объект. Ориентироваться можно только на осмысленность названия. Хотя это не всегда помогает. Например, трудно догадаться, что объект FileSystemObject находится в библиотеке Microsoft Scripting Runtime.
Ниже в примере показан фрагмент программы до того, как вы смогли определить точный тип объекта, и после. Важно, что редактор поможет вам ввести последнюю строку при раннем связывании (см. справа).
Сначала Dim ob as Object, wb as Object Set ob=CreateObject(“Excel.Application”) Set wb=ob.Workbooks.Open(“ras.xsl”) |
Позже Dim ob as Excel.Application, wb as Excel.Workbook Set ob=CreateObject(“Excel.Application”) Set wb=ob.Workbooks.Open(“ras.xsl”) |
