Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы / gorev_akhajan_makakshiripov_ehffektivnaja_rabota_s_subd

.pdf
Скачиваний:
53
Добавлен:
26.04.2015
Размер:
3.17 Mб
Скачать

Новая версия Visual FoxPro не будет работать на 16-разрядной платформе Windows 3.х. Для работы самой СУБД и разработанного на ее основе приложения требуется Windows 95, Windows NT 3.51 или Windows NT 4.0.

Корпорация Microsoft так определяет минимальные требования к компьютеру для работы Visual FoxPro 5.0 под управлением ОС Windows 95:

Процессор 486 с частотой 50 MHz.

Мышь.

Объем ОЗУ 10 Мбайт.

Свободное пространство на жестком диске: 15 Мбайт для установки варианта для переносного компьютера, 100 Мбайт - для типичной установки и 240 Мбайт - для полной.

Для работы Setup Wizard и создания OLE Automation сервера на компьютере должна быть установлена Runtime версия Visual FoxPro. Проверьте, не исключили ли вы этот пункт при установке Visual FoxPro.

Project Manager

Теперь в Project Manager ориентироваться стало значительно легче за счет того, что каждый объект сопровождается значком, идентифицирующим его тип (рис. П.1.2). Более тесной стала интеграция с Microsoft Visual SourceSave - пакетом программ для организации коллективной работы над пользовательским приложением. Project Manager будет визуально отображать статус объекта.

Рис. П.1.2. Отображение типа объекта в Project Manager

Работа с кодом программы

Существенные усовершенствования внесены в процесс разработки программ. Наконец-то появился цвет в Редакторе и, соответственно, в окне Command, так, как это реализовано в Visual Basic. Работая над кодом программы, нажмите правую кнопку мыши, и вы увидите длинное контекстное меню, изображенное на рис. П.1.3.

Ⱦɚɧɧɚɹ ɜɟɪɫɢɹ ɤɧɢɝɢ ɜɵɩɭɳɟɧɚ ɷɥɟɤɬɪɨɧɧɵɦ ɢɡɞɚɬɟɥɶɫɬɜɨɦ %RRNV VKRS Ɋɚɫɩɪɨɫɬɪɚɧɟɧɢɟ ɩɪɨɞɚɠɚ ɩɟɪɟɡɚɩɢɫɶ ɞɚɧɧɨɣ ɤɧɢɝɢ ɢɥɢ ɟɟ ɱɚɫɬɟɣ ɁȺɉɊȿɓȿɇɕ Ɉ ɜɫɟɯ ɧɚɪɭɲɟɧɢɹɯ ɩɪɨɫɶɛɚ ɫɨɨɛɳɚɬɶ ɩɨ ɚɞɪɟɫɭ piracy@books-shop.com

Рис. П.1.3.

При выборе команды Build Expression можно воспользоваться Построителем выражений. Очень удобно, особенно если лень разбираться со сложным синтаксисом. Теперь мы можем выполнять не только программу, но и ее произвольный фрагмент, выбрав команду Execute Selection.

Следующая команда Procedure/Function List выводит диалоговое окно (рис. П.1.4), в котором, используя список процедур и функций вашей программы, можно быстро перейти к требуемому фрагменту.

Рис. П.1.4.

www.books-shop.com

В контекстном меню, приведенном на рис. П.1.3, вы найдете еще две новые команды: Comment и Uncomment. Эти команды позволяют мгновенно пометить как комментарий выделенный фрагмент кода, который не нужно в данный момент выполнять, и, наоборот, убрать установленные ранее символы комментария. Чрезвычайно полезная возможность в период отладки программы.

Создание базы данных

В новой версии контейнер БД существенно расширен. Особенно ярко это проявляется при проектировании таблиц. На рис. П.1.5 представлен новый Конструктор таблицы и отмечены вновь появившееся элементы. Теперь для того, чтобы задать обычный индекс, совсем не обязательно переходить на другую вкладку - это можно сделать сразу при определении соответствующего поля.

Рис. П.1.5.

Очень важным нововведением является возможность задать для поля класс элемента управления, с помощью которого будут отображаться данные при работе с формой. Еще более важным обстоятельством является возможность выбора этого класса из библиотеки разработчика. Такая возможность существенно облегчает процесс разработки пользовательского интерфейса. Новая вкладка Table позволяет быстро перейти к установке правил проверки и триггеров на уровне таблицы и записи.

Работа с данными

www.books-shop.com

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

Эти возможности основываются на расширенном синтаксисе команды SELECT-SQL:

SELECT [ALL | DISTINCT] [TOP nExpression [PERCENT]]

[Alias.] Select_Item [AS Column_Name]

[, [Alias.] Select_Item [AS Column_Name] ...] FROM [FORCE]

[DatabaseName!]Table [Local_Alias]

[[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN

DatabaseName!]Table [Local_Alias] [ON JoinCondition]]

[[INTO Destination] | [TO FILE FileName [ADDITIVE] | TO PRINTER [PROMPT] | TO SCREEN]] [PREFERENCE PreferenceName]

[NOCONSOLE]

[PLAIN]

[NOWAIT]

[WHERE JoinCondition [AND JoinCondition ...] [AND | OR FilterCondition [AND | OR FilterCondition

...]]]

[GROUP BY GroupColumn [, GroupColumn ...]] [HAVING FilterCondition]

[UNION [ALL] SELECTCommand]

[ORDER BY Order_Item [ASC | DESC] [, Order_Item [ASC | DESC] ...]]

Опция INTO Destination при направлении результата запроса в курсор получила новое предложение

CURSOR CursorName [NOFILTER]

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

Используя Конструктор представления можно указать для представления такие же расширенные свойства, как ранее были возможны только для таблицы (формат, маска ввода и т.

д.).

Расширение возможностей технологии клиент-сервер

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

Первое, что бросается в глаза - это более глубоко интегрированный в Администратор ODBC Конструктор соединения (Connection Designer). Он также обеспечивает возможность установки дополнительных свойств для оптимизации соединений.

Для повышения гибкости работы с внешним сервером Visual FoxPro 5.0 приобрел новый элемент работы с данными - Offline Views - независимые представления. Что это такое? Это представления, которые после получения данных могут использоваться самостоятельно, в отрыве от источника данных, и при необходимости обновлять данные в источнике на основе выполненных пользователями изменений.

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

Для создания и использования независимых представлений вы можете применять следующие команды и функции.

Для получения независимого представления на основе существующего откройте соответствующую БД и используйте функцию

www.books-shop.com

CREATEOFFLINE(ViewName [, cPath])

которая возвращает .T., если независимое представление успешно создано. Параметр ViewName указывает имя существующего представления. Параметр cPath позволяет указать папку для расположения временных таблиц для независимого представления.

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

USE [[DatabaseName.]Table | SQLViewName | ?] [IN nWorkArea | cTableAlias]

[ONLINE]

[ADMIN]

[AGAIN]

[NOREQUERY [nDataSessionNumber]] [NODATA]

[INDEX IndexFileList | ?

[ORDER [nIndexNumber | IDXFileName | [TAG] TagName [OF CDXFileName] [ASCENDING | DESCENDING]]]]

[ALIAS cTableAlias] [EXCLUSIVE] [SHARED] [NOUPDATE]

Новая опция ADMIN позволяет просмотреть все выполненные изменения и при необходимости отменить какие-либо изменения.

Опция ONLINE используется для переноса изменений, выполненных в независимом представлении на БД сервера.

Для соединения независимого представления с БД сервера и перехода в режим работы обычного представления выполните функцию

DROPOFFLINE(cViewName)

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

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

Конструктора формы коснулись следующие улучшения:

Поддерживается как однодокументный (SDI), так и многодокументный (MDI) интерфейс.

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

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

Работая в окне Properties, вы можете переключать активные элементы управления нажатием клавиш Tab, PgDn, PgUp, Home и End совместно с клавишей Ctrl. Без клавиши Ctrl эти клавиши помогут вам быстро находить требуемые свойства в списке.

Многие диалоговые окна остаются на экране и облегчают тем самым множественный выбор, не требуя многократного вызова.

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

Вновой версии Visual FoxPro при создании нового файла меню вам будет предложен выбор между созданием привычного меню и контекстного меню (shortcut menu), вызываемого при нажатии правой кнопки мыши на определенном элементе управления. Для этого достаточно для события PightClick соответствующего элемента управления записать код запуска файла требуемого меню:

DO edtshort.mpr

www.books-shop.com

В Конструкторе меню появилась новая кнопка Insert Bar, которая позволяет вывести диалоговое окно со списком стандартных команд главного меню Visual FoxPro и разместить нужную команду в вашем меню. Теперь не придется искать в документации мудреное название команды Copy из меню Edit, если вы решили предоставить пользователю возможность копировать данные.

Значительно расширен набор примеров (Solutions), в которых показано, как можно наиболее эффективно использовать преимущества Visual FoxPro при решении конкретных задач, с которыми программист сталкивается при работе над пользовательским приложением. Эти примеры можно использовать как отдельные компоненты вашего будущего приложения.

Расширение функций OLE

Основная новость здесь - Visual FoxPro стал OLE-сервером. Таким образом, другие приложения, поддерживающие стандарт OLE 2.0, могут использовать объекты Visual FoxPro для расширения своей функциональности. Для этих целей вы можете создать как out-of-process (EXE), так и in-process (DLL) сервер.

В Visual FoxPro 5.0 доступ к объектам выполняется, как и в подавляющем большинстве других OLE-серверов, с помощью объекта верхнего уровня Application. В табл. П.1.1 перечислены его свойства, а в табл. П.1.2 - методы.

Таблица П.1.1. Свойства объекта Application

Свойство

Параметры

Описание

ActiveForm.Property [ =

Property -

Обеспечивает ссылку

Setting]

свойство формы

на активную форму

 

 

или объект _SCREEN

ActiveForm.Method

Setting -

 

 

значение

 

 

свойства Method

 

 

- метод формы

 

AutoYield [ = lExpr]

lExpr - по

Определяет способ

 

умолчанию

обработки событий

 

равен .T., что

Windows

 

предусматривает

 

 

приоритет

 

 

событий

 

 

Windows.

 

 

Значение .F.

 

 

предотвращает

 

 

прерывание

 

 

выполнения

 

 

кода Visual

 

 

FoxPro. При этом

 

 

события

 

 

Windows

 

 

ставятся в

 

 

очередь

 

Caption [ = cText]

cText - текст

Определяет заголовок

 

заголовка

окна приложения

DefaultFilePath [ = cPath]

cPath -

Определяет папку по

 

обозначение

умолчанию для

 

устройства,

приложения

 

папки или пути

 

FullName

 

Определяет путь и

 

 

имя файла для

 

 

запуска копии Visual

 

 

FoxPro

Height [ = nHeight]

nHeight - высота

Определяет высоту

 

окна

окна приложения

 

приложения

 

Left [ = nDist]

nDist -

Определяет

 

расстояние от

расположение окна

 

левого края

приложения с левого

www.books-shop.com

 

 

края

Name [ = cName]

cName - имя

Задает имя объекта

 

объекта

для ссылки в коде

 

 

программы

OLERequestPendingTimeout nMilliseconds -

Определяет задержку

[ = nMilliseconds]

величина

времени, которая

 

задержки в

происходит перед

 

миллисекундах.

появлением

 

По умолчанию

сообщения о том, что

 

равна 5000 мс.

система занята в

 

Если параметр

процессе выполнения

 

равен 0,

запроса OLE

 

сообщение не

Automation, если

 

появляется

пользователь

 

 

использует

 

 

клавиатуру или мышь

OLEServerBusyRaiseError [

lExpression - по

Определяет

= lExpression]

умолчанию

появление сообщения

 

равен .F. и

об ошибке, когда

 

сообщение об

истечет время,

 

ошибке будет

установленное в

 

появляться.

свойстве

 

Если параметр

OLEServerBusyTimeout

 

равен .T.,

 

 

сообщения не

 

 

будет

 

OLEServerBusyTimeout [ =

nMilliseconds -

Определяет время, в

nMilliseconds]

величина

течение которого

 

времени в

происходит повторное

 

миллисекундах

выполнение запроса

 

до появления

OLE Automation, если

 

сообщения о

занят сервер

 

том, что сервер

 

 

занят

 

StartMode

 

Возвращает число,

 

 

идентифицирующее

 

 

тип запускаемого

 

 

приложения

StatusBar [ =

cMessageText -

Определяет текст в

cMessageText]

строка

статус-строке

 

сообщения

приложения

Top [ = nDist]

nDist -

Определяет

 

расстояние от

расположение окна

 

верхнего края

приложения от

 

 

верхнего края

Version

 

Возвращает в виде

 

 

строки символов

 

 

номер версии

 

 

запускаемого

 

 

приложения

Visible [ = lExpr]

lExpr - по

Определяет, будет ли

 

умолчанию

запускаемая копия

 

равен .F., то

приложения видима

 

есть

 

 

запускаемая

 

 

копия

 

 

приложения не

 

 

видима. Если

 

 

значение равно

 

 

.T. - приложение

 

 

становится

 

 

видимым

 

Width [ = nWidth]

nWidth - ширина Определяет ширину

www.books-shop.com

 

окна

окна приложения

 

приложения

 

Таблица П.1.2. Методы объекта Application

Метод

Параметры

Описание

DataTo

nWorkArea,

Копирует

Clip([nWorkArea

cTableAlias - рабочая записи в

| cTableAlias] [,

область или

буфер обмена

nRecords] [,

псевдоним

в виде текста,

nClipFormat])

источника данных.

в котором

 

nRecords - число

каждая запись

 

копируемых

занимает

 

записей. nClipFormat отдельную

 

- по умолчанию

строку

 

равен 1, при этом

 

 

данные полей

 

 

разделяются

 

 

пробелами. Если

 

 

параметр равен 3,

 

 

данные разделяются

 

 

знаком табуляции

 

DoCmd

cCommand -

Позволяет

(cCommand)

выражение,

выполнить

 

представляющее

команду Visual

 

команду Visual

FoxPro из

 

FoxPro

приложения,

 

 

являющегося

 

 

OLE-

 

 

контроллером

Eval

cExpression -

Преобразует

(cExpression)

выражение, которое

выражение и

 

необходимо

возвращает

 

преобразовать

его в Visual

 

 

FoxPro

Help

cFileName - имя и

Открывает

([cFileName] [,

путь к файлу

окно с

nContextID] [,

справки. nContextID

контекстной

cHelpTopic])

- идентификатор

справкой

 

раздела. cHelpTopic

 

 

- тема раздела

 

Quit()

 

Закрывает

 

 

запущенную

 

 

копию

 

 

приложения

 

 

Visual FoxPro

RequestData

nWorkArea,

Создает массив

([nWorkArea |

cTableAlias - рабочая с данными из

cTableAlias] [,

область или

источника

nRecords])

псевдоним

данных Visual

 

источника данных.

FoxPro

 

nRecords - число

 

 

копируемых записей

 

Для ссылки на объект Application можно использовать системную переменную _VFP.

Visual FoxPro 5.0 имеет следующие коллекции, которые ассоциируются с объектом Application. Каждая коллекция может иметь соответствующие объекты:

Forms - формы;

Objects - объекты;

Controls - элементы управления;

Page - страницы;

Buttons - кнопки;

Columns - колонки.

www.books-shop.com

При этом обратите внимание, что эти коллекции являются коллекциями исключительно OLEобъектов и могут использоваться только с объектом Application. К этим коллекциям нельзя обращаться, используя ассоциированные с включенными в них объектами переменные. Вы должны использовать свойство Application как это показано ниже:

oFrm = CREATEOBJECT('Form')

? oFrm.Application.Forms[1].Controls.Count

Отладка приложения

Новая версия Visual FoxPro позволяет более легко отлаживать и наблюдать за работой приложения. Вместо специальных диалоговых окон Trace и Debug теперь используется интегрированный отладчик Debugger. Новый отладчик может загружаться в отдельное окно, не привязанное к главному окну Visual FoxPro или пользовательского приложения, что облегчает его использование и не мешает обычной работе. Новый отладчик просто прекрасен, а его основные возможности продемонстрированы на рис. П.1.6.

Рис. П.1.6.

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

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

www.books-shop.com

текущая выполняемая линия кода;

l активная точка останова;

m неактивная точка останова;

позиция вызова в стеке, если вы проверяете выполнение кода на уровне, отличном от текущего выполняемого кода.

Двойной щелчок мыши в этой зоне позволяет установить или убрать точку останова выполнения программы на данной строке кода.

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

Помимо трех видимых окон, отладчик имеет еще два окна, которые могут вызываться из его меню Window:

Call Stack - позволяет просматривать список выполняемых процедур, программ и методов;

Output - позволяет просматривать выводимые данные активной программы, процедуры или метода.

Приложение 2

Взаимозаменяемость команд и функций Visual FoxPro и Visual Basic

www.books-shop.com

Соседние файлы в папке лабы