ОСОБЕННОСТИ ЯЗЫКА FOXPRO

advertisement
ОСОБЕННОСТИ ЯЗЫКА FOXPRO
• Все данные и другая информация СУБД
хранятся в дисковых файлах. Файл данных,
или база данных, представляет собой
таблицу, каждая строка которой (запись)
содержит некоторые сведения об
описываемом объекте/объектах.
• Каждая клетка записи называется полем
записи. Все записи базы данных имеют
идентичную, заданную пользователем
структуру и размеры.
• Единицей длины данных является байт – 8
двоичных разрядов. Обычно один символ
занимает один байт.
Типы файлов
• В FoxPro можно создавать и обрабатывать
несколько типов дисковых файлов.
Каждому файлу программист дает имя по
обычным правилам, принятым в MS DOS,
т.е. собственно имя длиной до восьми
символов и (через точку) расширение
длиной до трех букв: <ИМЯ
ФАЙЛА>.<РАСШИРЕНИЕ>
Основные типы файлов:
• <имя>.DBF - файл базы данных;
• <имя>.FРТ - файл примечаний, хранящий мемополя базы данных;
• <имя>.IDX - индексный файл;
• <имя>.PRG - командный, программный файл;
• <имя>.МЕМ - файл для сохранения временных
переменных;
• <имя>.FХР – откомпилированный командный файл
PRG;
• <имя>.АРР – объединенный откомпилированный
командный файл.
• Не разрешается DBF-файлам давать
односимвольные имена из букв от А до J,
так как эти имена зарезервированы под
рабочие области. В которых располагаются
файлы баз данных.
• Файлы БД типа DBF являются основными
носителями данных на диске. Они имеют
следующие характеристики:
• число записей в файле - до 1 миллиарда;
• размер записи (в байтах) - до 65500;
• число полей в записи - до 255;
• число одновременно открытых баз - до 25.
Типы и размеры полей (в байтах):
• символьные поля до 254;
• числовые поля - до 20;
• поля дат - 8;
• логические поля - 1.
• Символьные поля (поля типа С) допускают
ввод любых алфавитно-цифровых
символов, знаков препинания и т.д.
• Числа в базе данных хранятся в числовых
полях двух форматов - с фиксированной и
плавающей точками (типы N и F).
• Логические поля (тип L) и другие
логические величины могут иметь только
два значения: .Т. (от TRUE - "Истина") и .F.
(от FALSE - "Ложь") или, что то же самое, .Y.
и .N. (от YES - "Да" и NO - "Нет").
• Поля дат (тип D) допускают ввод,
естественно, только цифр. Разрешенные
даты в FoxPro должны находиться в
диапазоне от 1 января 100 года до 31
декабря 9999 года.
• Мемо-поля (тип М) имеют произвольную
длину в каждой записи. Их содержимым
могут быть данные любого вида, включая
даже СОМ- и ЕХЕ-файлы. Поля примечаний
удобно использовать для такой
информации, которая имеет
непредсказуемую длину
• Файл примечаний имеет одинаковое с
файлом базы данных имя, но расширение
FPT. В каждой записи файла DBF имеется
только ссылка фиксированной длины 10 на
каждое имеющееся в базе мемо-поле.
• Файлы примечаний являются
подчиненными по отношению к файлам
DBF. Доступ к полям примечаний
становится возможным только в случае,
если открыт соответствующий файл DBF.
Временные переменные
• В FoxPro допускается определение и
использование одномерных и двумерных
массивов переменных. Причем каждый
элемент массива может быть любого из
имеющихся типов независимо от остальных
элементов.
• Числовые переменные могут иметь
представление как с фиксированной, так и с
плавающей точкой. Представление с
плавающей точкой применяется в
основном для изображения очень больших
или очень маленьких чисел. В этом случае
число изображается в виде значащей части
и степени числа 10 (буква Е).
• Имена полей и переменных могут иметь
длину до 10 символов латинских букв, цифр
и знаков подчеркивания - и должны
начинаться с буквы. Прописные и строчные
буквы в именах воспринимаются FoxPro
одинаково.
Создание программных продуктов
• наличие мощных команд обработки файлов;
• развитые средства ведения диалога (меню,
"горячие" клавиши);
• удобные средства ввода/редактирования данных;
• возможность ускоренного доступа к данным
(индексирование);
• управление дизайном экрана (окна, цвет, звук,
рамки);
• удобный вывод данных на экран, бумагу, в
текстовый файл;
• развитый аппарат обработки символьных данных.
ОБОЗНАЧЕНИЯ И СТРУКТУРА
КОМАНД
• При изучении языка FoxPro будем
использовать для описания синтаксиса команд
следующие обозначания:
• Файл - имя файла. Если нужно подчеркнуть тип
файла, то может быть указано и расширение
его имени (например, DBF-файл для файла
базы данных).
• БД - база данных (DBF-файл, возможно, с FPTфайлом).
• Поле - имя поля файла базы данных.
• Мемо-поле - имя поля примечаний из
файла примечаний (FPT-файла).
• Индекс - имя индекса (имя индексного IDXфайла)
• Перем - имя временной переменной,
находящейся в памяти.
• Область - имя рабочей области, которую
организует FoxPro для обработки одного
файла базы данных
• Окно - имя окна.
• [...] - в квадратных скобках указывается
необязательная, но возможная часть
конструкции команды. Скобки в команду не
входят.
• <...> - в угловых скобках помещается всякое
разрешенное выражение, которое
программист должен поместить в команду.
Скобки в команду не входят.
• /- указывает на то, что в команде необходимо
наличие только одного из элементов,
разделенных знаком "/".
• *и? - эти стандартные для MS DOS символы
в имени файла и в ключе поиска некоторых
команд означают любое количество
произвольных символов (*) и один
произвольный символ (?). Совокупность
указанных символов замещения и
известных символов имени образует
понятие "маска"
• ВырN - выражение числового типа (Numeric).
Его результатом является число.
• ВырL - выражение логического типа (Logical).
Вырабатывает значение "Истина" или "Ложь".
Логические выражения в синтаксисе команд
будем также иногда обозначать термином
"условие".
• ВырС - выражение символьного типа
(Character). Вырабатывает строку символов
или отдельный символ.
• ВырD - выражение типа дата (Date). Его
результатом является дата, к которому
применима арифметика дат.
• Выр - выражение любого типа вообще или
любого типа из разрешенных по контексту.
• Команда может иметь длину до 2048
символов. Для переноса в тексте
программы части команды на следующую
строку в конце текущей строки ставится
знак ";"
МАТЕМАТИЧЕСКИЕ ОПЕРАЦИИ
• 1. ** или ^ - возведение в степень;
• . 2. * - умножение, / - деление, % - остаток
от деления;
• 3. + - сложение, - - вычитание.
ЛОГИЧЕСКИЕ ОПЕРАЦИИ:
• 1. NOT - НЕ (другая форма указания
операции НЕ - !);
• 2. AND - логическое И;
• 3.0R ИЛИ.
• Знаки логических операций (кроме !)
окаймляются точками или пробелами
• ОПЕРАЦИИ ОТНОШЕНИЯ:
• < меньше, > - больше, = равно, # не равно,
<= - не больше, >= - не меньше. Знаки
отношения применимы как к числовым
выражениям, так и к датам и символьным
выражениям.
• В последнем случае сравниваются,
естественно, не сами символы, а их коды.
Если сравниваются символьные строки
разной длины, сравнение выполняется по
длине второго выражения, т.е. выражения,
стоящего справа от знака отношения.
Остаток левого операнда, превышающий
длину правого операнда, игнорируется.
• Эта чрезвычайно важная особенность дает
при необходимости возможность
организации поиска данных и по
неполному ключу, например фамилии по
первой(ым) букве(ам). Тогда более
короткое выражение должно стоять справа
от знака "=" и из него обычно должны быть
удалены концевые пробелы
• Кроме того, есть операции отношения
только для символьных выражений:
• $ - сравнение символьных строк. Операция
А$В даст значение логическая "Истина" (.Т.),
если А идентично В, либо А входит в В, и
"Ложь" (.F.) в противном случае. ,
• == - сравнение на полное тождество
символьных строк и по длине, и по
содержанию, включая пробелы.
ОПЕРАЦИИ СЦЕПЛЕНИЯ:
• "+" - соединение двух или более строк в
одну;
• "-" - то же, но пробелы в конце строки,
предшествующей знаку "-", помещаются в
конец итоговой строки.
Структура команды СУБД
• • НАЗВАНИЕ *<границы>+ *<список
выражений>+ *FOR <условие>+ *WHILE
<условие>+
• НАЗВАНИЕ - имя команды;
• <границы> -границы действия команды,
которые могут иметь одно из следующих
значений:
• ALL - все записи базы данных,
• REST - все записи (начиная с текущей) до конца
базы,
• NEXT <N> - следующие N записей (начиная с
текущей),
• RECORD <N> - запись номер N;
• FOR <условие> - выполнение команды
только для записей, отвечающих
<условию>;
• WHILE <условие> - выполнение команды
только до тех пор, пока не перестанет
выполняться <условие>.
• Кроме того, в FoxPro имеется большая
группа команд, которые целесообразно
выделить в отдельный вид:
• • SET <параметр команды> ТО <значение
параметра>
• • SET <параметр команды> OFF/ON
• В FoxPro разрешается и ключевые слова, и
имена записывать как прописными, так и
строчными буквами
• Константы различных типов данных
отображаются в командах следующим
образом:
• Символьные константы в FoxPro
выделяются апострофами, кавычками или
квадратными скобками.
• Константы типа дата берутся в фигурные
скобки (например, ,09.11.11-). Пустая дата
(,. . -)вообще может быть задана одними
фигурными скобками ,-. Логические
константы Т и F в тексте программ
обрамляются точками (.Т., .F., .t., f.).
• Покидание среды FoxPro осуществляется
командой QUIT которая возвращает нас в
исходное состояние
Download