Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Горев “Эффективная работа с СУБД”.pdf
Скачиваний:
208
Добавлен:
28.06.2014
Размер:
4.71 Mб
Скачать

converted to PDF by HupBaH9I

отработал

Resume Next Продолжает выполнение со строки, следующей за строкой, которая вызвала ошибку, после того как

обработчик ошибок отработал

Resume Строка Продолжает выполнение с указанной

строки и метки после обработки ошибки

Существуют три действия, которые можно применить к большинству обработчиков ошибок:

Установка перехватчика ошибок. Каждая процедура или функция, которая поддерживает перехват ошибок, должна включать выражение On Error, которое указывает Access, где искать инструкции по обработке ошибок. Хотя команда On Error должна указывать на метку или строку внутри той же самой процедуры, выражение после метки может вызывать другую процедуру.

Оформление обработчика ошибок. Обработчик ошибок обычно состоит из выражения Select Case (или похожего выражения для принятия решений), которое различает разные значения свойства Err и способ их обработки.

Выход из обработчика. Используйте одно из выражений Resume для указания выхода из процедуры, если ошибка приводит к тупиковой ситуации, или для продолжения выполнения программы.

Для отключения обработчика ошибок вставьте следующее выражение в код вашей процедуры:

On Error Goto 0

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

1.Текущая процедура.

2.Процедуры, перечисленные в списке Вызовы (начиная с самой последней вызываемой процедуры).

3.Обработчик ошибок внутри Access, который останавливает выполнение программы и выводит диалоговое окно ошибки времени выполнения.

Обработка ошибок процессора баз данных в Access

Ошибки, связанные с работой процессора баз данных, вызывают событие Error. Это относится к ошибкам процессора баз данных Microsoft Jet, но не к ошибкам времени выполнения Access. Выполняя процедуру события или макроса при возникновения события Error, вы можете предотвратить вывод сообщения об ошибке Microsoft Access и вывести пользовательское сообщение об ошибке, которое может оказаться более подходящим по контексту для вашего приложения.

Свойство OnError используется для того, чтобы указать макрос или процедуру Access, которая будет выполняться при возникновении события Error. Устанавливайте это свойство тем же путем, которым вы устанавливаете остальные свойства.

Например, синтаксис для процедуры события Error формы должен иметь следующую конструкцию:

Sub Form_Error(DataErr As Integer, Response As Integer)

Аргумент DataErr является кодом ошибки, возвращаемым функцией Err при возникновении ошибки. Вы можете использовать аргумент DataErr вместе с функцией Error$, чтобы соотнести номер ошибки с соответствующим сообщением об ошибке. Аргумент Response определяет, будет ли выводиться сообщение об ошибке. Для задания значения этого аргумента можно использовать одну из следующих констант:

DATA_ERRCONTINUE - это значение приводит к игнорированию ошибки, и код продолжается без вывода сообщения об ошибке. Вы можете добавить свое собственное сообщение об ошибке.

converted to PDF by HupBaH9I

DATA_ERRDISPLAY - это значение по умолчанию. Будет выведено стандартное сообщение об ошибке Microsoft Access.

Отладка программы в Visual Basic

Основным визуальным средством отладки в Visual Basic является окно Debug. Это окно позволяет выполнять достаточно много функций, и его основные элементы представлены на рис. 12.7.

Рис. 12.7. Окно отладки Debug в Visual Basic

Это окно имеет две панели. В верхней части расположена панель Watch, которая позволяет выводить значения интересующих нас переменных, значений свойств или выражений во время выполнения программы. Переменная или выражение могут быть занесены на эту панель с помощью команды Add Watch меню Tools. После выполнения этой команды на экране появляется одноименное диалоговое окно, представленное на рис. 12.8.

converted to PDF by HupBaH9I

Рис. 12.8.

Заранее выделенное выражение автоматически помещается в поле Expression этого окна. В блоке Context определяется дипазон, в котором будет отслеживаться изменение наблюдаемой величины. Не увлекайтесь, попытка отследить значения во всем диапазоне работы программы (пункты All Procedures и All Modules) может резко замедлить выполнение программы. В блоке Watch Type вы можете задать способ реакции Visual Basic на изменение значения наблюдаемого выражения.

В нижней части окна отладки расположена панель Immediate, которая позволяет отображать информацию, связанную с отлаживаемыми операторами, а также непосредственно вводить необходимые команды, как это можно делать в окне Command Visual FoxPro.

Сама процедура выполнения отладки программы Visual Basic аналогична описанной ранее для программы Access.

12.3. Подготовка приложения для распространения

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

В этом параграфе мы рассмотрим средства подготовки пользовательского приложения для распространения.

Современное приложение для обработки данных может представлять собой достаточно большое число различных модулей, включающих данные и программы для их обработки. В этом плане чрезвычайно большое количество файлов имеет приложение, разработанное на Visual FoxPro. С него и начнем.

В процессе создания пользовательского приложения по мере насыщения Project Manager различными модулями, Visual FoxPro автоматически создавал таблицу с расширением PJX, куда помещал необходимую информацию о составных элементах будущей прикладной программы. Используя эту таблицу, Project Manager может создать пользовательскую программу Visual FoxPro, которая будет включать в себя все элементы вашего проекта двух типов: в виде файла с расширением APP и в виде файла с расширением EXE (рис. 12.9). Для этого в Project Manager вам

converted to PDF by HupBaH9I

следует просто нажать кнопку Build. Но чуть-чуть терпения, перед тем как вы нажмете эту кнопку, нам следует рассказать еще о некоторых моментах, на которые следует обратить внимание перед построением пользовательской программы.

Рис. 12.9.

В Project Manager все внесенные в него файлы делятся на две группы: включенные в пользовательскую программу или не включаемые в нее. Например, по умолчанию не включаются в программу файлы БД и все связанные с ней файлы. Посмотрите на список файлов в Project Manager. Перед именем таких файлов вы обнаружите перечеркнутый кружок. Включаемый в пользовательскую программу файл компилируется в объектный код и недоступен для изменения. Файлы, не включаемые в пользовательскую программу, должны распространяться отдельно. Для того чтобы включить или исключить какой-то файл из пользовательской программы, в меню Project выберите команду Project Info. Появляющееся после этого диалоговое окно Project Information приведено на рис. 12.10. Для изменения статуса файла откройте вкладку Files. Таким образом, перед построением пользовательской программы вы должны проверить наличие всех файлов, которые должны войти в файл приложения. Например, файлы изображений автоматически не включаются в проект, и вы должны вручную добавить их, так как распространение их в виде отдельных файлов запрещено лицензионным соглашением.

converted to PDF by HupBaH9I

Рис. 12.10.

На вкладке Project того же окна, которая показана на рис. 12.11, мы можем указать авторские реквизиты, задать параметры компиляции и выбрать значок, который будет включен в EXE-файл и может использоваться для создания ссылки при его запуске. Для подготовки пользовательской программы в параметрах компиляции следует отменить опцию Debug Info, так как при включенной опции в объектный код помещается специальный отладочный модуль, позволяющий при ошибке с помощью окна Trace указать место ее возникновения при наличии исходного файла и самой СУБД. Так как в пользовательской программе исходных текстов программ нет, то этот модуль бесполезен и только занимает лишнее место.

Рис. 12.11.

converted to PDF by HupBaH9I

Вы можете также включить опцию Encrypted, которая исключает возможность просмотра символьных фрагментов в объектном коде. Правда, практика использования предыдущих версий FoxPro показывает, что это не слишком надежная защита от умелых хакеров. С другой стороны,

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

Для того чтобы при компиляции установить точку запуска приложения, в Project Manager необходимо указать главную программу, как это видно на рис. 12.9. Для этого достаточно поставить курсор на этот файл и вызвать команду Set Main в меню Project. Как правило, в качестве главной программы используется или специальная программа, или файл главного меню приложения.

Для построения приложения в Visual FoxPro можно использовать и специальную программу BUILDAPP.PRG, которая при установке профессиональной версии Visual FoxPro записывается в папку TOOLS\BUILDAPP папки Visual FoxPro. Эта программа создает файл пользовательского приложения и удаляет из него исходный код событий и методов, который хранится в файлах форм SCX и визуальных библиотек VCX. Удаление исходного кода позволяет получить файл пользовательского приложения меньших размеров и более защищенный от вскрытия.

Для запуска программы используйте следующий синтаксис:

DO BUILDAPP [WITH ProjectName [, AppFileName [, DebugMode [, BuildEXE]]]]

Здесь параметр ProjectName задает имя проекта. Параметр AppFileName - имя файла пользовательского приложения, причем указываемое расширение (APP или EXE) будет устанавливать тип создаваемого файла. Параметр DebugMode имеет логический тип и позволяет включить или отключить отладочный режим (для SET DEBUG ON параметр DebugMode должен быть равен .T., а для SET DEBUG OFF - .F.). Если параметр BuildEXE равен .T., то будет создаваться выполняемый EXE-файл.

Программа BUILDAPP выполняет следующие действия:

1.Определяет местоположение файлов.

2.Открывает проект.

3.Создает файл пользовательского приложения на основе первоначального файла проекта для проверки того, что весь исходный код откомпилирован и объектный код записан в соответствующие поля файлов SCX и VCX. Для завершения работы программы проект не должен генерировать ошибок во время построения пользовательского приложения.

4.Физически удаляет помеченные для удаления записи в файлах VCX.

5.Переносит исходный код из файлов SCX и VCX в массив.

6.Перестраивает файл пользовательского приложения.

7.Восстанавливает исходный код в файлах SCX и VCX, возвращая тем самым проект в первоначальное состояние.

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

APP-файл предназначен для работы в среде СУБД. Таким образом, компьютер, на котором будет работать ваша программа, должен быть оснащен копией Visual FoxPro.

EXE-файл на несколько десятков килобайт больше APP-файла, но для своей работы не требует наличия на компьютере Visual FoxPro. Этот файл работает совместно с библиотекой поддержки VFP300.ESL. EXE-файл работает несколько быстрее, чем APP, вероятно, за счет того, что требует меньшего количества ресурсов.

При выборе типа файла для пользовательского приложения необходимо иметь в виду, что библиотека поддержки не включает некоторые функции СУБД. Следовательно, в приложении, распространяемом в виде EXE-файла, не должны присутствовать эти исключенные функции.

Из меню Visual FoxPro не доступны следующие возможности:

Database

Form

Menu

Program

Project

Query

Table

converted to PDF by HupBaH9I

Ниже приведен список команд, при выполнении которых в пользовательском приложении произойдет ошибка "Feature not available" (функция не доступна).

Команды, не доступные при использовании библиотеки поддержки:

BUILD APP MODIFY FORM

BUILD EXE MOFIFY MENU

BUILD PROJECT MODIFY PROJECT

COMPILE MODIFY QUERY

CREATE FORM MODIFY STORED PROCEDURE

CREATE MENU MODIFY STRUCTURE

CREATE QUERY MODIFY VIEW

CREATE VIEW SUSPEND

FILER SET

MODIFY CONNECTION SET STEP

MODIFY DATABASE

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

ADDLABEL.APP

AUTONAME.PRG

BROWSER.APP

BUILDAPP.PRG

BUILDAPP.SCT

BUILDAPP.SCX

BUILDER.APP

CONPROCS.PRG

CONVERT.APP

CONVERT.H

CONVERT.PJT

CONVERT.PJX

CONVERT.PRG

CVTALERT.H

CVTSCX.H

FD3.FLL

FDKEYWRD.CDX

FOREIGN.H

FOREIGN.PRG

FORMPARM.PRG

FOXHELP.DBF

FOXHELP.FPT

FOXHELP.HLP

FPCNEW.PRG

GENDBC.PRG

GENERIC.PRG

GENMENU.PRG

HC35.ERR

HC35.EXE

IMAGEDIT.EXE

IMAGEDIT.HLP

JD.FKY

JD.PRG.

LOCWORD.H

LOCWORD.PRG

MIGDB4.H

MIGDB4.PRG

MIGNAVPR.TXT

MMSETUP.PRG

MRBC.EXE

MSGRAPH.HLP

MSINFO.EXE

PRO_EXT.H

PUTNAME.PRG

RESERVED.FLL

SHED.EXE

converted to PDF by HupBaH9I

SHED.HLP

SPELLCHK.APP

TRANSPRT.PRG

VFP.EXE

WINAPIMS.LIB

WIZARD.APP

WIZARD.FLL

WZFORM.APP

WZFOXDOC.APP

WZGRAPH.APP

WZIMPORT.APP

WZMAIL.APP

WZPIVOT.APP

WZQUERY.APP

WZREPORT.APP

WZSETUP.APP

WZTABLE.APP

WZUPSIZE.APP

В Visual Basic процедура подготовки пользовательского приложения очень похожа на только что описанную для Visual FoxPro. В Visual Basic мы можем получить только EXE-файл. Для этого достаточно выбрать команду Make EXE File в меню File. Подготовка дистрибутивного комплекта дискет в Visual Basic выполняется с помощью отдельного приложения - Application Setup Wizard, представленного на рис. 12.12. Это приложение работает аналогично Setup Wizard в Visual FoxPro и путем выполнения семи шагов позволяет программисту быстро определить набор файлов, необходимый для работы приложения на компьютере пользователя.

Рис. 12.12.

Приложение 1

Дополнительные возможности новой версии Visual FoxPro 5.0

Визуальные средства проектирования Поставка программного пакета Требования к установке

Project Manager

Соседние файлы в предмете Программирование на Delphi