Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTVET_NA_BD.docx
Скачиваний:
19
Добавлен:
08.11.2019
Размер:
916.72 Кб
Скачать

2.2. Создание таблицы

В файл – серверных БД все таблицы размещаются в одном каталоге (папке). Поэтому перед созданием БД создадим ее каталог. Пусть это будет каталог C:\WORKER. В нашем случае для создания контейнера БД будем использовать утилиту Database Desktop, входящей в комплект поставки Delphi.

Утилита Database Desktop решает целый ряд задач, связанных с таблицами файл – серверных БД. С ее помощью можно создавать или изменять структуру таблиц, создавать первичные ключи и индексы, создавать и изменять записи, просматривать их и т.д. Запустите Database Desktop с помощью команды Пуск ® Программы ® Borland Delphi 6 ® Database Desktop. Или, если вы работаете в среде Delphi, для запуска используйте команду Tools ® Database Desktop главного меню. Первое, что необходимо сделать, – это настроить рабочий каталог утилиты. Выберите команду File ® Working Directory и установите в появившемся окне ссылку на каталог C:\WORKER (рис. 2.1).

Рис. 2.1. Установка рабочего каталога

Для создания таблицы WORKER выберите команду File ® New ® Table. Database Desktop откроет окно Create Table, в котором можно выбрать тип таблицы (рис. 2.2).

Рис. 2.2. Выбор типа таблицы

Тип таблицы определяет многие ее свойства. Тип Paradox 7 можно считать наилучшим для таблиц файл – серверных баз данных: щелчком на кнопке ОК согласитесь с вариантом Paradox 7, предложенным по умолчанию. На экране появится окно (рис. 2.3), предназначенное для создания/редактирования структуры таблицы. 

2.3. Создание полей

Каждому полю создаваемой таблицы соответствует одна запись в перечне полей (Field roster) этого окна. В колонку Field Name нужно поместить имя поля. В колонку Туре – символ, определяющий тип хранимых в поле данных. В колонку Size – число, определяющее длину поля (требуется не для всех типов полей). И, наконец, в колонку Key – символ звездочки (*), если по значениям этого поля нужно построить первичный ключ.

Введите название первого поля IDWorker и нажмите клавишу табуляции (Tab) для перехода к следующей колонке, в которой вводится тип поля. Нажмите клавишу пробела, чтобы утилита Database Desktop показала список возможных типов, и выберите в нем тип Autoincrement (рис. 2.2).

 

Рис. 2.3. Окно создания структуры таблицы

Поля автоинкрементного типа служат для создания уникального числа, однозначно определяющего запись: для первой записи в это поле будет автоматически помещено число 1, для второй – 2 и т. д. При удалении какой-либо записи выделенное для нее число не используется вновь. После выбора типа поля черный прямоугольник появится в колонке Key. Нажмите клавишу пробела, чтобы пометить поле символом (*) и создать по нему первичный ключ.

Продолжите ввод полей таблицы WORKERS так, как показано на рис. 2.4. Для всех полей установите флажок Required Field, означающий, что при вводе очередной записи в эти поля обязательно должны быть помещены значения – за этим будет следить Borland Database Engine (BDE). 

 Рис. 2.4. Структура полей таблицы WORKERS

2) правочная система (далее в тексте также - "справка") - важная составная часть любой более-менее сложной (и даже простой) программы. Существуют разные форматы справочных систем. Справка в формате WinHelp - о ней в статье и пойдет речь, Html-help - как, например, справка к ОС Windows или к программам MS Office. В качестве справки может выступать набор связанных html-файлов, например так организована справка к СУБД MySQL. Из достоинств WinHelp можно назвать ее надежность и меньшие, чем у HTML-help, требования к ресурсам. Существуют различные программы для создания справочных систем названных типов. Однако, для создания несложной справки вполне достаточно стандартной программы MS Help Workshop, которая поставляется с Delphi. Потребуется еще редактор rtf файлов, в данной статье описывается работа со знакомым всем MS Word'ом. Все действия, которые будут описаны - несложные, но мне в свое время потребовалось определенное количество усилий и времени, чтобы разобраться по справке к Help Workshop, как все это делать. Надеюсь, что статья сможет облегчить этот путь для других. Расчитана она на начинающих. В статье описывается создание простой справки, оглавления к ней, создание последовательностей просмотра, вставка рисунков и гиперссылок, а также подключение справки к программе. Рассматривается только техническая сторона, вопрос о том, что написано в справке, оставлен в стороне.

Общие сведения

В состав операционной системы Windows входит подсистема поддержки справки - WinHelp. Она имеет свое API, которое позволяет предоставить справочную информацию в том или ином виде в приложениях Windows. Создание справочной системы можно разделить на две части

Создание собственно справки, ее содержания

Подключение справки к программе - то есть обеспечение доступа к справочной информации удобным для пользователя способом.

В состав справки к программе обычно входит несколько файлов:

Файлы содержащие собственно информацию - имеют расширение .hlp

Файлы оглавления - .cnt (от апглийского content)

После первого вызова справки WinHelp создает файл .gid

Также другие типы файлов, например, для полнотекстового поиска, о чем в статье речь не идет.Создание тематических файлов.

Для создания справки сначала нужно подготовить файлы, содержащие справочную информацию. Это - обычные документы в формате rtf, которые можно создавать с помощью различных программ. Я здесь буду описывать работу с MS Word (создаем документ и выбираем "Сохранить как" - "Текст в формате RTF"). Будем называть эти файлы тематическими (topic files). Для получения из тематических файлов готовых файлов справки (hlp), их нужно обработать (компилировать) программой HelpWorkshop (hwc.exe). Кроме собственно текста и рисунков, тематические файлы могут содержать также специальную разметку, которая несет в себе информацию, нужную для создания переходов по ссылкам, связи оглавления справки с ее темами и т.п. - для реализации различных возможностей WinHelp.

Обычно справка содержит несколько тем и оглавление, из которого можно перейти к этим темам. Самый простой вариант: если тема - одна и оглавления нет. В таком случае просто пишем то, что нужно и сохраняем это в файле с расширением ".rtf". Для создания нескольких тем процесс усложняется ненамного:

Каждая тема должна заканчиваться жестким переходом на новую станицу. Для этого после окончания темы нужно в меню (напомню, что речь идет о MS Word) "Вставка" выбрать "Разрыв"->"Начать новую страницу".

Для того, чтобы тема были доступна из оглавления к справке, нужно задать ей идентификатор. Для этого нужно в то место текста, куда будет впоследствии происходить переход из оглавления (начало темы или, если нужно, другое место), вставить специальную разметку, а именно: концевую сноску. Символом сноски нужно выбрать "#". Идентификатором темы служит текст сноски. Например, создадим тему "Поддержка", отделим ее от других тем разрывами страниц и зададим ей идентификатор "support". Для этого поместим каретку ввода около заголовка темы и выберем в меню "Вставка"->"Сноска...". В диалоговом окне (рис.1) выбираем вид сноски - "концевая", нумерация - "другая", в окошке для ввода символа пишем "#" (без кавычек, понятное дело). Нажимаем ОК, ссылка добавлена и каретка автоматически переведена к тексту ссылки. Пишем "support". Готово.

Повторяем то же самое для всех тем справки. Сохраняем файл. Теперь можно попробовать создать свой хелп.

Рис.1. Добавление концевой сноски.

Запускаем программу HelpWorkshop. Это - файл Hcw.exe в директории Delphi\Help\Tools\. Создаем новый проект через меню "File"->"New"->"Help Project". Справа на панели есть ряд кнопок, нажимаем "Files...". В диалоговом окне добавляем наш тематический файл и закрываем это окно. Сохраним проект - это будет файл с расширением hpj (Help Project). Насколько я понял, после первого запуска Help Workshop связывает себя с файлами hpj, а также - с файлами оглавления справки (cnt), так что их потом можно открывать двойным щелчком мышью. Для создания help-файла можно просто нажать кнопку "Save and Compile". Откроется новое окно с сообщением о результате компиляции. Предположим, что все в порядке, закроем это окно. Теперь в директории, где находился наш проект (.hpj), должен появиться файл справки. Однако, при двойном щелчке мышью на нем мы сможем просмотреть только первую тему. Чтобы просматривать все темы и перемещаться между ними, нужно добавить файл оглавления.Создание оглавления справки.

Файл оглавления справки имеет простой текстовый формат, но создавать его удобно тоже в HelpWorkshop. Для этого выбираем в меню HelpWorkshop "File" -> "New" -> "Help Contents". В верхней части окна нужно вписать имя главного файла справки (файлов, вообще говоря, может быть несколько) и заголовок (title) для оглавления справки. То же можно сделать в диалоговом окне, которое открывается при нажатии кнопки Edit... .

Теперь создаем собственно оглавление. Оно состоит из элементов двух типов - разделы справки, которые включают в себя несколько тем и представлены в оглавлении справки значком книжки и сами темы - текст и картинки, представлены в оглавлении справки значком листа со знаком вопроса на нем (можно посмотреть это в оглавлении любой справки). Также в оглавление можно вставить макросы и включить файлы (include), этого я здесь касаться не буду. Справа на панели есть набор кнопок для добавления и манипуляции элементами оглавления. (Add Below - Добавить ниже, Add Above - Добавить выше, Move Right - Сдвинуть вправо, Move Left - Сдвинуть влево, Edit, Delete). При помощи них создаем нужную структуру оглавления. При добавлении раздела в диалоговом окне нужно указать только его название, при добавлении темы - название, идентификатор (тот, который мы задали ей в rtf-файле, когда вставляли концевую сноску), имя help-файла и имя окна. Если тема находится в том же help-файле, который мы указали как главный, то имя help-файла указывать не нужно. Имя окна указывать тоже не обязательно, если оно не указано, то тема откроется в окне по-умолчанию. Нужно сохранить файл оглавления (он будет иметь расширение .cnt) в той же директории, где находится help-файл лучше с тем же именем, что и help-файл. Теперь нужно снова открыть файл проекта .hpj и, нажав кнопку "Options", в открывшемся диалоговом окне на закладке "Files" указать наш файл оглавления (Contents file). Закрываем диалоговое окно, снова нажимаем "Save and Compile". Теперь при двойном щелчке мышью по значку файла справки должно открыться ее оглавление, из которого можно получить доступ ко всем темам.

Мне не удалось, похоже, это невозможно, создать такую структуру оглавления, чтобы в самом левом ряду сначала шел значок темы (например, "Общие сведения"), а под ним - значки разделов. Пришлось даже для одиночной темы создавать раздел, содержащий ее одну.Создание последовательностей просмотра.

Удобно перемещаться в справке от темы к теме с помощью кнопок ">>" и "<<" на панели инструментов окна или при помощи клавиш "<", ">" клавиатуры. Чтобы добавить такую возможность, нужно:

Создать одну или несколько последовательностей просмотра (browse sequence) в .rtf файле текста справки, добавив соответствующую разметку.

Определить в проекте справки (файл .hpj) окно с соответствующими кнопками.

Разметка имеет следующий вид: это тоже концевые сноски, как и для идентификаторов тем, однако в данном случае знаком сноски служит не символ "#", а "+" - знак плюса. Текстом сносок может быть либо число, либо строка символов. Просмотр будет осуществляться в порядке возрастания (как при сортировке строк). Отсюда следующее - если используются номера, то нужно вставлять необходимое количество нулей перед значащими цифрами для правильной сортировки. Например, если у Вас 20 тем, то первые нужно нумеровать как 01, 02, и т.д. Возможно несколько вариантов:

Если последовательностей несколько, то каждая из них может иметь имя, а темы внутри последовательности отличаться номерами (например, GUI1, GUI2, GUI3, ...), Если номера не заданы, WinHelp сам создаст последовательность просмотра при компиляции проекта в том порядке, как расположены темы в файле .rtf.

Если не писать ничего в текстах ссылок или написать во всех ссылках "auto" (без кавычек), то WinHelp при компиляции создаст одну последовательность просмотра в том порядке, как расположены темы в файле .rtf.

Чтобы добавить кнопки навигации "<<" и ">>" в окне справки (по умолчанию их нет), нужно определить хотя бы одно окно. Для этого, открыв файл проекта в HelpWorkshop, нужно нажать кнопку "Windows..." в правой части окна. В диалоговом окне с закладками нажать кнопку "Add..." и в открывшемся окне ввести в поле названия "main", а поле типа окна очистить, после чего нажать OK. Теперь у нас определено одно окно, различные свойства которого можно изменять, перемещаясь по закладкам. На закладке "Buttons" отмечаем галочкой "Browse". Нажимаем ОК, готово. Теперь окно справки будет иметь нужные кнопки. Нажимаем "Save and Compile" внизу окна и можем проверять, что получилось в выходном help файле.Добавление картинок и гиперссылок.

Бывает, что в справку нужно поместить изображения. Это можно сделать, просто добавив их в документ rtf обычным для MS Word способом. Если одно изображение используется в нескольких местах, то можно воспользоваться специальной разметкой, предусмотренной для вставки изображений в справку, так что изображение будет храниться в одном экземпляре. Здесь я не буду рассматривать, как это сделать (честно говоря, я этого никогда и не делал).

Обычное дело - указать адрес своего сайта и/или электронной почты в разделе "Поддержка". Как сделать, чтобы эта ссылка выглядела и функционировала как гиперссылка на Веб-страницах? Аналог гиперссылки, т.е. тега anchor (<a>) HTML в WinHelp - "hotspot". Hotspot - это область, по щелчку мыши на которой, выполняется какое-либо действие из предусмотренных в WinHelp. В данном случае нам нужно запустить один из макросов WinHelp, а именно макрос ExecFile. Этот макрос напоминает функцию WinApi ShellExecute. Синтаксис его такой:

ExecFile(program[, arguments[, display-state[, topic-ID]]])

Первый параметр, как написано в справке, может указывать на программу или файл. Однако, как и в ShellExecute, вместо имени файла можно указать URL, например "http://www.mysite.ru" или "mailto:nekto@somemail.ru".

Чтобы создать hotspot, запускающий такой макрос, нужно сделать следующее:

Сразу после текста hotspot'a ввести символ "!", а сразу за ним - текст макроса, например:

Наш сайт: www.mysite.ru!ExecFile(http://www.mysite.ru)

Примечание: URL в скобках должен быть без кавычек.

Далее, нужно отформатировать этот отрывок так: текст hotspot'a должен иметь двойное подчеркивание, а символ "!" и текст макроса после него - иметь атрибут "скрытый". И то, и другое делается через меню "Формат" -> "Шрифт" (см. рис. 2) На всякий случай, еще раз уточню: двойное подчеркивание (выпадающий список рядом с "цветом текста"), а не зачеркивание..

Рис. 2.

Теперь, если добавить такой hotspot и компилировать проект, то мы увидим в своей справке, что в строке текста

Наш сайт: www.mysite.ru - адрес выглядит и функционирует как гиперссылка.Присоединяем справку к программе.

Чтобы справка была доступна в программе, нужно указать программе на файл .hlp. Самый простой способ размещения файла справки - в той же папке, где находится исполняемый файл. Определить для приложения файл справки можно так: открыв проект (приложения) в Delphi и выбрав меню "Project" -> "Options" -> "Application", вписать название файла справки в поле ввода "Help file". При этом нужно указать название файла без пути. Когда WinHelp пытается найти справочный файл, одна из просматриваемых директорий - та, где расположен исполняемый файл программы. Другой способ - в обработчик события OnCreate главной формы программы вставить строку:

Application.HelpFile:=ExtractFilePath(Application.ExeName) + "MyHelp.hlp";

где MyHelp.hlp - название файла справки.

Чтобы из меню в программе вызвать оглавление справки, нужно воспользоваться функцией

Application.HelpCommand(HELP_FINDER, 0);

Чтобы перейти к одной из определенных нами тем справки, нужно вызвать функцию

Application.HelpJump('MyTopic'),

где MyTopic - идентификатор темы.

Один из способов вызова справки - нажатие клавиши F1. Можно организовать вызов контекстной справки при нажатии на F1, когда активным является тот или иной элемент управления. Для этого соответствующей теме справки нужно присвоить номер, а затем этот номер присвоить свойству HelpContext элемента управления. Чтобы задать номера для тем справки, нужно открыть проект справки в HelpWorkshop и нажать кнопку "Map" в правой части окна. Нажимаем в диалоговом окне "Add", вводим идентификатор темы и произвольный номер (например, 1 :) ), повторяем это для всех нужных тем (каждой - свой номер), закрываем окно и нажимаем в очередной раз "Save and Compile". Затем в Delphi, в окне инспектора объектов, присваиваем нужные номера нужным элементам управления (напоминаю, свойство HelpContext).

Экзаменационный билет №28

1) Табл. A: Типы полей формата Paradox

Alpha

строка длиной 1-255 байт, содержащая любые печатаемые символы

Number

числовое поле длиной 8 байт, значение которого может быть положительным и отрицательным. Диапазон чисел - от 10-308 до 10308 с 15 значащими цифрами

$ (Money)

числовое поле, значение которого может быть положительным и отрицательным. По умолчанию, является форматированным для отображения десятичной точки и денежного знака

Short

числовое поле длиной 2 байта, которое может содержать только целые числа в диапазоне от -32768 до 32767

Long Integer

числовое поле длиной 4 байта, которое может содержать целые числа в диапазоне от -2147483648 до 2147483648

# (BCD)

числовое поле, содержащее данные в формате BCD (Binary Coded Decimal). Скорость вычислений немного меньше, чем в других числовых форматах, однако точность - гораздо выше. Может иметь 0-32 цифр после десятичной точки

Date

поле даты длиной 4 байта, которое может содержать дату от 1 января 9999 г. до нашей эры - до 31 декабря 9999 г. нашей эры. Корректно обрабатывает високосные года и имеет встроенный механизм проверки правильности даты

Time

поле времени длиной 4 байта, содержит время в миллисекундах от полуночи и ограничено 24 часами

@ (Timestamp)

обобщенное поле даты длиной 8 байт - содержит и дату и время

Memo

поле для хранения символов, суммарная длина которых более 255 байт. Может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (1-240) - остальные символы сохраняются в отдельном файле с расширением .MB

Formatted Memo

поле, аналогичное Memo, с добавлением возможности задавать шрифт текста. Также может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (0-240) - остальные символы сохраняются в отдельном файле с расширением .MB. Однако, Delphi в стандартной поставке не обладает возможностью работать с полями типа Formatted Memo

Graphic

поле, содержащее графическую информацию. Может иметь любую длину. Смысл размера - такой же, как и в Formatted Memo. Database Desktop "умеет" создавать поля типа Graphic, однако наполнять их можно только в приложении

OLE

поле, содержащее OLE-данные (Object Linking and Embedding) - образы, звук, видео, документы - которые для своей обработки вызывают создавшее их приложение. Может иметь любую длину. Смысл размера - такой же, как и в Formatted Memo. Database Desktop "умеет" создавать поля типа OLE, однако наполнять их можно только в приложении. Delphi "напрямую" не умеет работать с OLE-полями, но это легко обходится путем использования потоков

Logical

поле длиной 1 байт, которое может содержать только два значения - T(true, истина) или F (false, ложь). Допускаются строчные и прописные буквы

+ (Autoincrement)

поле длиной 4 байта, содержащее нередактируемое (read-only) значение типа long integer. Значение этого поля автоматически увеличивается (начиная с 1) с шагом 1 - это очень удобно для создания уникального идентификатора записи (физический номер записи не может служить ее идентификатором, поскольку в Парадоксе таковой отсутствует. В InterBase также отсутствуют физические номера записей, но отсутствует и поле Autoincrement. Его с успехом заменяет встроенная функция Gen_id, которую удобней всего применять в триггерах)

Binary

поле, содержащее любую двоичную информацию. Может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (0-240) - остальные символы сохраняются в отдельном файле с расширением .MB. Это полнейший аналог поля BLOb в InterBase

Bytes

строка цифр длиной 1-255 байт, содержащая любые данные

2) Компиляция и просмотр файла справки

Этот этап реализуется проще всего. Вызовите из Windows приложение Microsoft Help Workshop, откройте в нем файл HPJ и щелкните на кнопке Save and Compile (сохранить и компилировать).

После этого в Проводнике Windows нужно дважды щелкнуть левой кнопкой мыши на значке нового файла HLP. Появится окно, аналогичное изображенному на рис. 10.2.

Экзаменационный билет №29

1) Структура полей

1) Наименования полей:

Порядковый номер поля - этот столбец не содержит заголовка и

предназначен лишь для определения порядка следования полей в таблице.

Значения в нем изменяются автоматически, начиная с единицы,

упорядочиваются по возрастанию и их уникальность поддерживается для

каждого поля.

Field Name - столбец содержит название поля таблицы БД.

Имя поля в таблице формата Paradox представляет собой строку, написание которой подчиняется следующим правилам:

  • Имя должно быть не длиннее 25 символов.

  • Имя не должно начинаться с пробела, однако может содержать пробелы. Однако, если Вы предполагаете в будущем переносить базу данных в другие форматы, разумнее будет избегать включения пробелов в название поля. Фактически, в целях переносимости лучше ограничиться девятью символами в названии поля, не включая в него пробелы.

  • Имя не должно содержать квадратные, круглые или фигурные скобки [], () или {}, тире, а также комбинацию символов "тире" и "больше" (->).

  • Имя не должно быть только символом #, хотя этот символ может присутствовать в имени среди других символов. Хотя Paradox поддерживает точку (.) в названии поля, лучше ее избегать, поскольку точка зарезервирована в Delphi для других целей.

2)

Экзаменационный билет №30

1)

2) Если Вы решили заняться распространением своих программ, то без установочного дистрибутива не обойтись. В настоящее время практически все программы имеют инсталлятор, обычно он называется Setup.exe. В этой статье мы рассмотрим на примере, как собрать инсталлятор для приложения Access и разберем некоторые особенности, которые необходимо при этом знать.

Как уже говорилось ранее, Access не позволяет сделать исполняемый файл, способный работать без Access. Но в то же время, Microsoft предлагает для решения проблемы воспользоваться пакетом Microsoft Office Developer, в состав которого входит и лицензия на распространение программы Microsoft Access runtime. Остановлюсь на этом подробнее.

Программа Microsoft Access runtime - это версия Access, которая позволяет пользователям выполнять, но не модифицировать приложение Access. Устанавливать Microsoft Access runtime вместо полной версии есть смысл только в том случае, когда нужна лицензионная чистота, а у клиента, у которого исполняется Ваша база, нет лицензии на Access. В этом случае придется покупать ODE (Оffice Developer Edition). Тогда вместе с его покупкой Вы получаете некоторые дополнительные инструменты и самое главное ПРАВО устанавливать клиентам вместе с разработанной вами базой еще и Run-time версии Аccess. В этом случае к клиенту не будет притензий по поводу незаконного использования Аccess. Иначе каждому клиенту необходимо купить лицензию MS AАccess.

В пакет ODE входит "создатель дистрибутивов" который включает в диистибутив Вашу MDB и Run-time версию. Все библиотеки необходимые для создания Run-time уже есть в полной версии Аccess (даже без ODE). Но тут есть одно НО (это для тех, кого беспокоит лицензионная "читота"):

Если Вы его не купите официально, то у клиентов все равно не будет права использовать даже Run-time версию.

Может возникнуть такая мысль: А что, если узнать какие файлы нужны Access для работы и включить их в установочный дистрибутив? Можно, но это не решает проблемы с лицензией. К тому же придется создавать достаточно сложную программу установки с проверкой имеющихся компонентов и установкой/регистрацией отсутсвующих. Причем в последнем случае можно при неумелых действиях даже разрушить систему.

Вообще, если рассматривать реальные ситуации с продажей приложений на Access, то лишь немногие разработчики (речь идет о России) действительно покупают лицензионные пакеты. Как правило это те, для кого "при определенном уровне развития бизнеса вопрос покупать - не покупать теряет свою актуальность" - или говоря проще, кто может себе позволить купить лицензионный пакет за 600$ - 1000$. Интересно потом выслушивать их чертыхания на форумах по поводу работы таких программ. Насколько я понял там те же самые "косяки", что и в пиратских версиях. Поэтому призывать Вас использовать только бесплатные или пиратские версии Office для Ваших программ я не буду, но и рекомендовать пользоваться лицензионным тоже не стал бы (см. выше).

Интересно, что полную версию Access можно запустить в runtime - режиме, задав в командной строке ключ /runtime. Например, создайте на рабочем столе ярлык, кликнете по нему правой кнопкой мыши, в появившемся диалоговом окне в поле объект напишите примерно так: (это для Office 2000 - XP, а для 2003 нужно будет исправить вместо Office10 - Office11)

"C:\Program Files\Microsoft Office\Office10\MSACCESS.EXE" "D: \Базы\Моя База.mdb"/runtime

а в поле «Рабочая папка»:

"D: \ Базы"

Теперь запустим приложение через этот ярлык. Откроется окно проекта Access, но ярлыка Access, а так же стандартных панелей инструментов уже там не будет. Это и есть runtime - режим.

Для начинающих разработчиков распространение приложений Access через пакет Microsoft Office Developer вряд ли приемлемо. Ведь он стоит денег, и не малых. Мы рассмотрим другой способ, при помощи бесплатного инсталлятора Inno Setup. Есть конечно и другие как платные, например InstallShield, так и бесплатные инсталляторы. Различаются они по удобству работы, размеру создаваемого дитсрибутива.

Inno Setup - свободно распространяемый инсталлятор для программ Windows. Английские версии появились ещё в 1997, теперь Inno Setup переводится на несколько языков, а инсталляторы может создавать более чем на 20 языках. Inno Setup превосходит многие коммерческие инсталляторы по возможностям, стабильности и размеру создаваемых файлов.

Основные характеристики:

программа может сравнивать информацию о версии файла

перемещать используемые файлы

регистрировать DLL/OCX/FNT/TLB и типовые библиотеки

инсталировать шрифты

проверяет, активны ли определенные программы

создание ярлыков быстрого доступа (например, через старт-меню или на рабочем столе)

осуществление записи в ini-файлы

встроенная машина для написания скриптов на языке Pascal

поддерживает многоязыковую инсталяцию

инсталяция и деинсталяция по умолчанию

весь код доступен (Borland Delphi 2.0-5.0)

защита пароля для setup

в случае отмены во время исполнения, все действия будут приведены в исходное состояние

поддерживает все 32-х битные версии Windows (95, 98, 2000, 2003, XP, Me, NT 4.0)

создает создание одного файла exe, что значительно облегчает процесс инсталяции Вашей программы

стандартный интерфейс Windows 2000/XP

ориентирован на пользователя (например, полный, минимальный, пользовательский вариант)

все инструменты для деинсталяции

инсталирование файлов: встроенная поддержка "deflate", bzip2, 7-zip LZMA файлы сжатия

Так же начиная с версии 2.0.6 Inno Setup включает в себя полную поддержку для MBCS. В более ранние версии последнее свойство не входит. А вот Web-инсталяцию не поддерживает.

Особенность создания инсталлятора в Inno Setup - это то, что инсталляторы создаются при помощи скриптов - простых текстовых файлов ASCII, напоминающих .INI файлы. Скрипты редактировать легче, чем, например, работать с интерфейсом Installshield. Скрипты имеют расширение ".iss" (inno setup script). В нём указываются все параметры инсталлятора, и при установке, программа ассоциирует себя с этими файлами. Скрипт разделен на секции, имена которых пишутся в квадратных скобках []. Внутри секций существуют ключевые слова и указания, которые компилятор может читать и выполнять.

Комментарии начинаются с точки с запятой в начале строки и могут быть помещены в любое место скрипта. Коментарии блоком не возможны, как впрочем и вынесение коментария в середину строки. Последнее допускается компилятором, но впоследтвие, при выполнение, ведет к ошибке.

; -- Sample1.iss --

; Demonstrates copying 3 files and creating an icon.

Порядок секций не имеет значения. Все они (за исключением [Setup]) являются произвольными. Ключевому слову значение присваивается при помощи знака равенства (=).

Указания состоят из одного или нескольких параметров и их опций, а также флагов flags. Параметр же в свою очередь состоит из имени, за которым следует двоеточие : и значения. Параметры, опции и флаги отделяются друг от друга точкой с запятой ;

Рассмотрим в кратце основные секции:

Секция Значение

[Setup] сoдержит указания по поведению инсталяционной рутины, а также, как это должно выглядеть. Ключевые слова AppName, AppVerName и DefaultDirName являются обязательными. Все остальные - по необходимости

[Files] Здесь содержатся файлы для setup

[Icons] ярлыки (иконки)

[Components] Соотношение компонентов к типу инсталяционной рутины

[Dirs] разрешает создать новые пустые папки

[INI] делает записи в INI- файлы

[InstallDelete] первое действое при инсталяции, cистаксис соответствует секции [UninstallDelete]

[Messages] разрешает специфические изменения в тексте

[Registry] делает запись в регист

[Run] выполняет другие программы после того как данные успешно были исталированы, но еще до того как будет закрыто диалоговое окно

[Tasks] разрешает дополнитекльные действия в setup

[Types] устанавливает тип setup-а

[UninstallDelete] последняя операция при деинсталяции. Таким образом папки и/или файлы будут удалены

[UninstallRun] первая операция при деинсталяции. Систаксис соответствует секции [Run]

[LangOptions] содержит информацию о языке. как правило, не используется

Inno Setup работает внутри скрипта с различными предопределеными константами, которые, как правило, содержат пути (path). Способ написания: {имя}. Некоторые константы, такие как {app} и {group} могут/должны быть предопределены пользователем. Тот, кто сам желает определить константы, должен обратиться к припроцессеру Алекса Якимова (Alex Yackimoff).

Вот основные константы Inno Setup:

константа содержание пример

{win} путь в директорию/папку Windows C:\Windows

{sys} путь в системную папку Windows, в частности папку System32 C:\Windows\System или C:\Windows\System32

{app} путь к собственной аппликации (программе)

{pf} путь к программной папке C:\Programme

{cf} путь к общим данным C:\Programme\Gemeinsame Dateien

{dao} cоответствует{cf}\Microsoft Shared\DAO C:\Programme\Gemeinsame Dateien\Microsoft Shared\DAO

{src} путь к папке инсталявионной рутины, в момент выполнения setup R:\

{group} группа программ для стартового меню

Итак, рассмотрим задачи, которые нужно решить (определим только минимальные). Наш инсталлятор должен сделать следующее:

Распаковать файлы в нужные места

Создать папку в каталоге программы (папка «Коп» - для хранения резервных копий базы)

Создать меню запуска приложения в Пуск - Все программы, а так же иконку на рабочем столе

Это необходимый минимум. Но, разумеется, это далеко не все возможности Inno Setup. Ведь не зря его используют многие разработчики. Но в данной статье я ограничусь только этим, желающие глубже изучить возможности программы могут обратиться к справочной системе. В Интернет есть множество ссылок как на программу, так и на переводы справки. Например, Inno Setup 5.1.6. и справку к нему Вы можете скачать здесь… Английский сайт программы http://www.innosetup.com

Для начала попробуйте поэкспериментировать, создавая инсталлятор при помощи мастера, а затем изучая структуру полученного скрипта. В принципе, я думаю нет нужды подробно описывать, что где нажимать. Inno Setup настолько прост в освоении, что без проблем изучается, что называется «методом научного тыка». Вот например скрипт инсталятора, который делает определенные ранее задачи (все файлы дистрибутива находятся в каталоге D:\Setup.)

[Setup]

AppName=Моя программа

AppVerName=Моя программа. Версия 1.0.

AppPublisher=MyProgram, Inc.

AppPublisherURL=http://MyMySoft.ru/

AppSupportURL=http://MyMySoft.ru/

AppUpdatesURL=http://MyMySoft.ru/

DefaultDirName={pf}\MyProgram

DisableDirPage=no

DefaultGroupName=Моя программа

DisableProgramGroupPage=yes

LicenseFile=D:\Setup\license.txt

InfoAfterFile=D:\Setup\readme.txt

AlwaysCreateUninstallIcon=yes

[Tasks]

Name: "desktopicon"; Description: "Создать ярлык на &Рабочем столе"; GroupDescription: "Дополнительные ярлыки:"

[Files]

Source: "D:\Setup\Сервер.mdb"; DestDir: "{app}"; DestName: "Сервер.mdb";

Source: "D:\Setup\license.txt"; DestDir: "{app}";

Source: "D:\Setup\readme.txt"; DestDir: "{app}";

Source: "D:\Setup\Log.JPG"; DestDir: "{app}";

Source: "D:\Setup\Log.ico"; DestDir: "{app}";

Source: "D:\Setup\База.mdb"; DestDir: "{app}";

[INI]

Filename: "{app}\MyProg.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://MyMySoft.ru/"

[Dirs]

Name: "{app}\Коп"

[Icons]

Name: "{group}\Моя программа"; Filename: "{app}\База.mdb" ;WorkingDir: "{app}";IconFilename:{app}\Log.ico

Name: "{group}\Сайт программы"; Filename: "{app}\MyProg.url"

Name: "{userdesktop}\Моя программа"; Filename: "{app}\База.mdb" ;WorkingDir: "{app}"; IconFilename:{app}\Log.ico;Tasks: desktopicon

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]