лабы / gorev_akhajan_makakshiripov_ehffektivnaja_rabota_s_subd
.pdfотработал
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 - это значение приводит к игнорированию ошибки, и код продолжается без вывода сообщения об ошибке. Вы можете добавить свое собственное сообщение об ошибке.
Ⱦɚɧɧɚɹ ɜɟɪɫɢɹ ɤɧɢɝɢ ɜɵɩɭɳɟɧɚ ɷɥɟɤɬɪɨɧɧɵɦ ɢɡɞɚɬɟɥɶɫɬɜɨɦ %RRNV VKRS Ɋɚɫɩɪɨɫɬɪɚɧɟɧɢɟ ɩɪɨɞɚɠɚ ɩɟɪɟɡɚɩɢɫɶ ɞɚɧɧɨɣ ɤɧɢɝɢ ɢɥɢ ɟɟ ɱɚɫɬɟɣ ɁȺɉɊȿɓȿɇɕ Ɉ ɜɫɟɯ ɧɚɪɭɲɟɧɢɹɯ ɩɪɨɫɶɛɚ ɫɨɨɛɳɚɬɶ ɩɨ ɚɞɪɟɫɭ piracy@books-shop.com
•DATA_ERRDISPLAY - это значение по умолчанию. Будет выведено стандартное сообщение об ошибке Microsoft Access.
Отладка программы в Visual Basic
Основным визуальным средством отладки в Visual Basic является окно Debug. Это окно позволяет выполнять достаточно много функций, и его основные элементы представлены на рис. 12.7.
Рис. 12.7. Окно отладки Debug в Visual Basic
Это окно имеет две панели. В верхней части расположена панель Watch, которая позволяет выводить значения интересующих нас переменных, значений свойств или выражений во время выполнения программы. Переменная или выражение могут быть занесены на эту панель с помощью команды Add Watch меню Tools. После выполнения этой команды на экране появляется одноименное диалоговое окно, представленное на рис. 12.8.
www.books-shop.com
Рис. 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 вам
www.books-shop.com
следует просто нажать кнопку Build. Но чуть-чуть терпения, перед тем как вы нажмете эту кнопку, нам следует рассказать еще о некоторых моментах, на которые следует обратить внимание перед построением пользовательской программы.
Рис. 12.9.
В Project Manager все внесенные в него файлы делятся на две группы: включенные в пользовательскую программу или не включаемые в нее. Например, по умолчанию не включаются в программу файлы БД и все связанные с ней файлы. Посмотрите на список файлов в Project Manager. Перед именем таких файлов вы обнаружите перечеркнутый кружок. Включаемый в пользовательскую программу файл компилируется в объектный код и недоступен для изменения. Файлы, не включаемые в пользовательскую программу, должны распространяться отдельно. Для того чтобы включить или исключить какой-то файл из пользовательской программы, в меню Project выберите команду Project Info. Появляющееся после этого диалоговое окно Project Information приведено на рис. 12.10. Для изменения статуса файла откройте вкладку Files. Таким образом, перед построением пользовательской программы вы должны проверить наличие всех файлов, которые должны войти в файл приложения. Например, файлы изображений автоматически не включаются в проект, и вы должны вручную добавить их, так как распространение их в виде отдельных файлов запрещено лицензионным соглашением.
www.books-shop.com
Рис. 12.10.
На вкладке Project того же окна, которая показана на рис. 12.11, мы можем указать авторские реквизиты, задать параметры компиляции и выбрать значок, который будет включен в EXE-файл
иможет использоваться для создания ссылки при его запуске. Для подготовки пользовательской программы в параметрах компиляции следует отменить опцию Debug Info, так как при включенной опции в объектный код помещается специальный отладочный модуль, позволяющий при ошибке с помощью окна Trace указать место ее возникновения при наличии исходного файла
исамой СУБД. Так как в пользовательской программе исходных текстов программ нет, то этот модуль бесполезен и только занимает лишнее место.
Рис. 12.11.
www.books-shop.com
Вы можете также включить опцию 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
www.books-shop.com
Ниже приведен список команд, при выполнении которых в пользовательском приложении произойдет ошибка "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
www.books-shop.com
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.
www.books-shop.com
Приложение 1
Дополнительные возможности новой версии Visual FoxPro 5.0
Визуальные средства проектирования Поставка программного пакета Требования к установке
Project Manager
Работа с кодом программы Создание базы данных Работа с данными
Расширение возможностей технологии клиент-сервер Построение пользовательского интерфейса Расширение функций OLE
Отладка приложения
К тому времени, когда рукопись данной книги уже была сдана в издательство, вышла новая версия СУБД Visual FoxPro, которая получила номер версии 5.0. Где же версия 4? Ведь в книге все время говорилось о Visual FoxPro версии 3.0. Ничего страшного не произошло? и разработчики Microsoft еще не разучились считать. Visual FoxPro получил номер версии 5 для унификации с новыми версиями других средств разработки Microsoft: Visual Basic 5.0 и Visual C++ 5.0. Ну что ж, это является лишним свидетельством постоянной тенденции к унификации средств разработки для совершенствования процесса создания прикладного программного обеспечения.
В связи с появлением на полках магазинов новой версии Visual FoxPro мы решили кратко рассказать о тех новых возможностях, которые появились у программистов по сравнению с изложенными в книге.
Визуальные средства проектирования
В новой версии Visual FoxPro расширен набор визуальных средств разработки приложений. Появились два новых Мастера.
Мастер создания приложения (Application Wizard) позволяет объединить возможности других Мастеров Visual FoxPro и в то же время обладает новыми уникальными функциями. На рис. П.1.1 приведен вид этого Мастера на первом шаге. Вы можете выбрать один из вариантов дальнейших действий:
•Создание проекта, структуры папок для размещения входящих в проект файлов и нескольких исходных модулей на основе базовых классов Visual FoxPro. Для этого необходимо, как это видно на рис. П.1, выбрать опцию Framework only. При выборе этого варианта работа Мастера заканчивается на втором шаге. Вы получаете файл проекта с двумя заготовками форм, две визуальные библиотеки классов, меню и главную программу для запуска приложения.
•Дополнительно к первому варианту создание полнофункционального приложения с набором, по вашему выбору, создаваемых форм и отчетов. При этом вы должны указать базу данных, для которой будет генерироваться приложение.
www.books-shop.com
Рис. П.1.1. Первый шаг работы с Мастером создания приложения
Мастер наращивания для СУБД Oracle Server 7.0 (Oracle Upsizing Wizard) позволяет перенести данные из локальной БД на сервер Oracle, преобразовать локальные таблицы и представления в таблицы и представления внешней БД и, насколько это возможно, продублировать функциональность приложения Visual FoxPro для БД Oracle. Обратите внимание, что поставляемый драйвер ODBC для Oracle работает только в ОС Windows NT. На компьютере должна быть установлена копия программы SQL Net - составной части клиентского программного обеспечения Oracle.
Расширена функциональность и удобство использования существующих Мастеров. Основные нововведения:
•Form Wizard позволяет теперь создавать страничные блоки для увеличения числа размещаемых полей.
•Pivot Table Wizard и Mail Merge Wizard позволяют теперь использовать 32-разрядный драйвер ODBC Visual FoxPro.
•Upsizing Wizard поддерживает установленные правила ссылочной целостности.
Свободно распространяемый ранее Мастер для создания Web-страниц (World Wide Web Search Page Wizard) теперь включен в состав пакета как утилита, которая позволяет на основе записей, хранящихся в БД, создать Web-страницы для поиска и отображения данных.
Поставка программного пакета
Visual FoxPro 5.0 поставляется только в виде профессиональной версии на CD-ROM, которая содержит все необходимые элементы для создания пользовательского приложения. Внешне коробка с пакетом программ теперь существенно "похудела" и напоминает коробку с Visual C++. Это произошло за счет того, что объемная печатная документация заменена на мощную интерактивную среду Online Documentation. С ее помощью вы можете искать необходимый материал, пользоваться перекрестными ссылками и даже смотреть мультимедиа клипы о способах наиболее эффективной работы с Visual FoxPro. Интерфейс электронной документации очень удобен, но... А "но" заключается в том, что физически электронная документация представляет собой файл БД Access размером около 70 Мбайт плюс примерно такой же объем файлов с видеоклипами. А это значит, что для работы с ней вам потребуется ну очень мощный компьютер. По крайне мере, 486DX2-66 с 20 Мбайт ОЗУ и очень быстрым жестким диском с этой задачей не справился.
Требования к установке
www.books-shop.com