современным СУБД для персональных компьютеров, которые оснащены языковыми средствами,
позволяющими достаточно легко написать простую программу.
В этой главе мы попробуем дать основные сведения о языке программирования Visual FoxPro
читателям, которые от работы с диалоговыми средствами хотят перейти к написанию
пользовательской программы. Для тех, кто уже пишет такие программы, мы систематизировали
справочный материал и дали несколько советов по наиболее эффективных приемам
программирования в рассматриваемых средствах разработки.
4.1. Что такое язык программирования
В предыдущей главе мы познакомились с основными действиями, которые можно выполнить с
помощью диалоговых средств в визуальной среде разработки. Очевидно, что, работая с СУБД,
некоторые действия приходится выполнять многократно. Например, открывать одни и те же
таблицы. Многие функции работы пользовательского приложения невозможно реализовать,
используя только визуальные средства. Решить эти проблемы можно с помощью языка
программирования.
В этом параграфе вы узнаете:
• Из чего состоит язык программирования.
• Где могут храниться нужные данные.
• С помощью каких средств можно выполнять какие-либо действия с данными.
• Как делятся в программе переменные и массивы по области действия.
При попытке описания языков программирования в рассматриваемых средствах разработки
авторы столкнулись с достаточно большими трудностями. Не сомневаясь в своих
интеллектуальных способностях, вину за это они целиком и полностью возложили на сами языки,
а пособниками признали тех, кто их придумал - разработчиков из Microsoft.
Действительно, так как СУБД Access использует язык программирования Visual Basic, то
остается рассказать о нем и языке программирования Visual FoxPro. Эти языки программирования
имеют достаточно много общих черт, но одна из них - богатое историческое наследие - привела к
тому, что современные объектно-ориентированные свойства в них сосуществуют с
традиционными структурными составляющими. Причем число команд и функций, составляющих
структурную основу языка, перевалило далеко за тысячу. Чтобы разобраться в этой лавине,
начнем со структурной части рассматриваемых языков, а в следующей главе изучим их объектно-
ориентированные возможности. При этом мы будем стараться максимально выделять общие
черты рассматриваемых языков программирования и заранее приносим свои извинения опытным
разработчикам за игнорирование каких-то, может быть, и достаточно важных особенностей
каждого языка. Например, в наследство от Xbase в Visual FoxPro до сих пор можно символьные
значения указывать не только в кавычках, но и в квадратных скобках. В Visual Basic так делать
нельзя. Мы думаем, что стоит придерживаться общих возможностей и указывать символьные
значения в кавычках, не упоминая о квадратных скобках.
Язык программирования представляет собой набор команд, которые последовательно
обрабатываются интерпретатором и преобразуются им в машинный код, в свою очередь
обрабатываемый микропроцессором. С помощью команд мы выполняем какие-либо действия,
аналогично выбору команды в меню. Типичная структура команды:
COPY TO FileName [FIELDS FieldList] [Scope][FOR lExpression]
Название команды является ключевым элементом для ее идентификации. В связи с тем, что
разработчики языка старались дать названиям команд максимальную смысловую нагрузку для их
более легкого запоминания, в ряде случаев команды получились достаточно громоздкими. Что ж,
если вы не хотите долго стучать по клавиатуре, откроем маленький секрет. Например, в Visual
FoxPro названия команд в большинстве случаев можно сокращать до четырех символов. Если в
каком-то случае так делать нельзя из-за опасности потерять уникальность идентификации, об
этом обязательно будет написано в справочном файле Visual FoxPro при описании данной
команды.
Опции служат для уточнения действия, выполняемого командой. В данном примере можно
использовать опцию FIELDS для указания списка тех полей, которые будут копироваться в новый
файл.
Часть команды, обозначенная словом Scope, позволяет задать диапазон записей, на которые
будет воздействовать команда. Если мы используем эту возможность, то в команде вместо слова
Scope надо использовать один из перечисленных вариантов: ALL - все записи в таблице; NEXT
nRecords - указанное число записей после текущей (включая текущую); RECORD nRecordNumber
- запись с указанным номером; REST - записи от текущей до конца таблицы.
converted to PDF by HupBaH9I