2. Динамический обмен данными
Статический обмен данными (рассмотренный в разделе 1), обладает двумя недостатками: изменения в данных-оригинале не отражаются в данных-копии; каждая копия данных требует для своего хранения дополнительного места на диске. От этих недостатков свободен динамический обмен данными. Многие программы для WINDOWS позволяют производить динамический обмен данными. Если вы связали часть электронной таблицы с документом Word, то сами данные при этом в документ не перемещаются. Вместо этого в документ вставляется связь с электронной таблицей, а реальные данные остаются в электронной таблице. Таким образом, любые изменения, внесенные в электронную таблицу, найдут отображение в документе Word.
Обе программы, и которая предоставляет данные (сервер), и которая получает данные (клиент) должны поддерживать DDE (dynamic data exchange – динамический обмен данными) или OLE (object linking and embedding – связывание и внедрение объектов).
Для создания связи между данными необходимо выполнить следующие действия:
открыть программу-источник и скопировать данные в буфер обмена;
затем открыть программу-приемник и выполнить цепочку команд Правка (Edit) –> Специальная вставка (Paste Special). Если команда Специальная вставка отсутствует в меню Правка прикладной программы, то это значит, что данная программа не поддерживает создание связей или использует для этого нестандартную команду (чтобы получить точный ответ, нужно обратиться к описанию программы);
в диалоговом окне Специальная вставка выбрать желаемый формат данных для вставки, установить переключатель в положение Связать (Paste Link) и щелкнуть на кнопке ОК. Если опция Связать недоступна, то, возможно, прикладная программа-источник не поддерживает связывание данных как сервер.
Наиболее важным преимуществом использования связей является их способность обеспечивать автоматическое обновление документов: любая модификация исходных данных автоматически отражается в документе назначения.
Используя возможности OLE, вы можете создавать составные документы, т.е. документы, которые включают различные типы данных из различных источников (текст, данные электронных таблиц, информацию из базы данных, диаграммы, рисунки и т.д.).
В программе, реализующей OLE, имеется много опций для создания сложных документов. Краткая сводка наиболее распространенных опций:
Встроить данные в документ (Embed Data In A Document);
Встроить файлы в документ (Embed A File In A Document);
Связать данные с документом (Link Data In Document);
Связать файлы с документом (Link A File In A Document).
Большинство прикладных программ, которые поддерживают OLE, облегчают перемещение или привязывание данных к документу. Самый легкий способ динамического обмена данными заключается в использовании буфера обмена (весьма похоже на использование буфера обмена при создании связи, т.е. Правка (Edit) –> Специальная вставка (Paste Special)).
Если исходная прикладная программа может работать как OLE-сервер, то один из пунктов в окне списка Как: (As:) включает слово Объект (Object). Выбор такого пункта приводит к тому, что прикладная программа помещает в документ данные как объект формата OLE. При двойном щелчке на таком объекте в документе он становится доступным для редактирования или воспроизведения.
Многие прикладные программы имеют также и другие команды для вставки в документ объектов в формате OLE. Например, в редакторе Word при выборе команд Вставка (Insert) –> Объект (Object) на экран выводится диалоговое окно Вставка объекта (рис. 3), в котором перечислены различные типы объектов в формате OLE, которые можно вставить в документы этого редактора.
Рис. 3.
На рисунке 4 показана панель Создание из файла (Create From File) диалогового окна Вставка объекта.
Рис. 4
Эта панель позволяет вставлять в документы или связывать целые файлы. На рис. 3 и рис. 4 следует обратить внимание на флажок опции В виде значка (Display As Icon). Если он установлен, то Word вставит в документ значок, представляющий значок OLE, а не сами данные. Двойной щелчок на этом значке открывает прикладную программу, в которой был создан объект, для вывода его на экран или воспроизведения.
