Айтхожаева Е.Ж., И Син Фу Е.В. Язык программирования баз данных xBase. Методические указания к лабораторным работам по дисциплинам Системы баз данных, Базы данных - файл n1.doc

Айтхожаева Е.Ж., И Син Фу Е.В. Язык программирования баз данных xBase. Методические указания к лабораторным работам по дисциплинам Системы баз данных, Базы данных
Скачать все файлы (215.5 kb.)

Доступные файлы (1):
n1.doc216kb.01.04.2014 00:47скачать

n1.doc

  1   2
Айтхожаева Е.Ж., И Син Фу Е.В. Язык программирования баз данных xBase. /Методические указания к лабораторным работам по дисциплинам «Системы баз данных», «Базы данных». / - Алматы: КазНТУ, 2006.


ВВЕДЕНИЕ
Язык программирования баз данных xBase относится к языкам четвертого поколения 4GL (4 Generation Language), и используется в реляционных настольных dBase-подобных СУБД. Родоначальником семейства dBase-подобных СУБД является СУБД dBase, предложенная фирмой Ashton-Tate в начале 80 х годов. В это семейство, кроме СУБД dBase, входят системы управления базами данных, разработанные другими фирмами. Их объединяет входной dBase-подобный язык процедурного типа с некоторыми отличиями, известный как язык программирования xBase. Далее рассматриваются основные положения и команды языка программирования xBase, так как он используется в любых реализациях dBase-подобных СУБД, в том числе и в объектно-ориентированных версиях с визуальными средствами программирования. В случае наличия нескольких версий одной и той же команды, используемой в различных СУБД, описывается версия команды, реализованная в СУБД Visual FoxPro под ОС Windows. Visual FoxPro является одной из наиболее pаспpостpаненных и высокоскоростных локальных систем управления БД для персональных компьютеров и характеризуется умеренными требованиями к вычислительным ресурсам, что позволяет использовать ее на персональных компьютерах любого класса. В настоящее время существует несколько модификаций этой системы, ориентированных на работу в широком диапазоне, как операционных систем (от MS DOS до Unix), так и аппаратных платформ (от IBM PC и их аналогов до мини-ЭВМ типа VAX).

Команды манипулирования данными языка программирования xBase предназначены для работы с отношениями - таблицами данных, состоящими из полей (столбцов) и записей (стpок). Таблицы хранятся в файлах данных, имена которых имеют расширение .DBF. Каждое поле таблицы имеет свое имя, тип, длину (количество символов в поле для одной записи) и точность - количество дробных знаков после запятой (для числовых полей). В различных dBase-подобных СУБД набор типов полей различается, но некоторые типы полей применяются во всех СУБД и не только dBase-подобных. К ним относятся следующие типы полей: символьный - Character (значение поля - любые символы, в том числе и буквы любого алфавита), числовой - Numeric или Float (значение поля - любые числа), дата - Date (значение поля - дата с указанием дня, месяца и года), логический - Logical (значение поля -.F.(False-ложь) или .T.(True-истина)), поле типа «примечание» - Memo.

Команды языка xBase можно использовать в двух режимах. Интерактивный режим работы - это работа в диалоговом режиме в интерактивной среде СУБД: команда - результат команды. Программный режим работы представляет собой выполнение в среде СУБД программ, написанных на языке программирования xBase. Все СУБД, использующие xBase, поддерживают встроенный язык управления данными SQL. Поэтому в программы xBase можно включать команды SQL.

В командах языка программирования xBase, так же как и в алгоритмических языках, могут использоваться прописные и строчные буквы алфавита и знак подчеркивания; десятичные цифры от 0 до 9; cпециальные символы, такие как +, -, *, **, ?, ! и т. д.

Предусмотрено выполнение четырех типов операций над выражениями:

(*), деление (/), возведение в степень ( ** или ^ );

Логические операции и опеpации отношения дают логический pезультат .F. или .T. Oни используются в командах языка программирования xBase для организации различных циклов, сравнений и переходов по условию. Приоритет выполнения логических операций следующий: NOT, .AND, OR.

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

Символьные константы в языке программирования xBase выделяются апострофами, кавычками или квадратными скобками. Константы типа даты заключаются в фигурные скобки, логические константы выделяются точками.

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

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

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

- установить указатель записи на n-ю запись БД;

GOTO - установить указатель записи на n ю запись БД;

GO TOP - установить указатель записи на первую запись БД;

GO BOTTOM - установить указатель записи на последнюю запись БД;

SKIP [k]/[-k] - переместить указатель записи на k (или  k) записей относительно его последней позиции.

Большинство команд языка программирования xBase, обрабатывающих записи таблицы данных, в общем виде имеют следующую структуру (необязательные параметры команды выделены квадратными скобками):

ГЛАГОЛ [<диапазон>][<список_выpажений>]

[FOR/WHILE<условие>],

где ГЛАГОЛ - команда; <диапазон> - область действия глагола; -фоpмулы, временные переменные памяти, имена полей таблицы данных, опеpатоpы, константы и т.д.; <условие> - условия команд FOR или WHILE. Допустимо сокращение составляющих команд до первых четырех символов. Квадpатные скобки отмечают необязательные паpаметpы. Символом «/» разделены взаимоисключающие параметры (см. FOR/ WHILE). FOR <условие> указывает,что действие команды распространяется внутри диапазона только на записи, удовлетворяющие заданному условию. WHILE <условие> означает выполнение команды до тех пор, пока указанное условие истинно.

Для указания диапазона действия глагола используются следующие служебные слова: ALL (область действия - вся БД); RECORD (область действия - n-я запись в файле таблицы данных); NEXT (область действия - следующие z записей, начиная с текущей записи); REST (область действия - все записи, начиная с текущей записи и до конца БД).

Работать с записями в таблице данных можно, если она открыта для пользователя, т.е. если она является активной. Активизация имеющейся таблицы данных осуществляется использованием команды:

USE <имя_файла_таблицы_данных>

При этом открытая ранее свободная таблица данных закрывается. При открытии таблицы, входящей в состав БД, автоматически открывается и БД, ее содержащая. Закрытие активной таблицы данных можно выполнить командой USE (без параметров).

Завершение работы с СУБД в языке программирования xBase осуществляется командой:

QUIT

В результате выполнения этой команды происходит закрытие всех файлов. Выход из системы без команды QUIT может привести к повреждению открытых файлов и потере информации.
ЛАБОРАТОРНАЯ РАБОТА N 1
СОЗДАНИЕ И ИЗМЕНЕНИЕ ТАБЛИЦ ДАННЫХ

Цель работы: изучение команд создания и изменения таблиц данных
При создании БД для определенной предметной области (ПО) прежде всего необходимо определить интересующие объекты и их свойства. Например, предметная область - деканат, объект - студент. Интересующие нас свойства студента: фамилия, дата рождения, номер зачетной книжки, семейное положение, стипендия. Каждому студенту в таблице данных будет соответствовать своя запись (строка), a каждому свойству - поле (столбец). Для создания таблицы данных прежде всего необходимо определить ее структуру, т.е. определить количество полей (столбцов) в таблице и их обязательные параметры: имя, тип, длину, точность. Следует учесть, что имя поля может содержать не более 10 символов и должно начинаться обязательно с буквы. Имя поля может содержать буквы (в ранних версиях dBase-подобных СУБД - только латинские), цифры и знак подчеркивания (_). Если в имени поля используется пробел, то вместо пробела ставится знак подчеркивания ( _ ), иначе система не воспримет буквы после пробела.

Исходя из вышеперечисленных свойств студентов, необходимо определить параметры пяти полей:

1) фамилия студента - имя поля FIO, тип поля - символьный, ширина поля 15 позиций;

2) дата рождения - имя поля DATA_R, тип поля - дата, для поля этого типа система автоматически сама отводит 8 позиций;

3) номер зачетной книжки - имя поля ZAH_KN, тип поля - числовой, ширина этого поля 7 позиций;

4) семейное положение - имя поля FAM, тип поля - логический, для поля этого типа система автоматически сама отводит 1 позицию;

5) стипендия - имя поля STIP, тип поля - числовой, достаточно 6 позиций под это поле, из них 2 - под дробную часть;

6) студенческая группа - имя поля GRUP, тип поля - символьный, достаточно 10 позиций под это поле.

Структура файла таблицы данных создается командой:

CREATE <имя_файла>

Введенное <имя_файла> - это имя таблицы данных (требования к именам файлов таблиц БД определяются операционной системой). Не следует использовать буквы от A до J для имен файлов таблиц данных, так как они обычно зарезервированы СУБД для псевдонимов имен. В то же время имя AA является корректным именем файла. Если файл таблицы данных создается на диске, отличном от активного или не в текущем каталоге, то перед именем файла следует указать имя дисковода и имя каталога (например, A:\FOX) либо предварительно ввести команду:

SET DEFAULT TO <имя_дисковода>/<имя_каталога>

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

При необходимости изменения структуры активной таблицы данных используется команда:

MODIFY STRUCTURE

При ее выполнении на экран выводится структура таблицы данных и предоставляется возможность ее изменения. Команда позволяет: добавлять новые поля, удалять поля, изменять имя поля, изменять тип поля, изменять размер поля. Чтобы вставить новое поле, курсор устанавливается на начало поля, перед которым делается вставка. При одновременном нажатии клавиш CTRL и N (^ N) или кнопки INSERT открывается новое поле, после чего производится определение его параметров. Для удаления поля курсор устанавливается на начало имени этого поля и нажимаются одновременно клавиши: CTRL и U (^ U) или кнопка DELETE. Не рекомендуется одновременно добавлять и удалять поля, при изменении имени поля не рекомендуется одновременно изменять остальные его параметры. Для их изменения необходимо повторно использовать команду MODIFY STRUCTURE.

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

Запоминание новой структуры таблицы данных осуществляется при одновременном нажатии клавиш CTRL и W (^ W) или нажатием кнопки OK. При этом активному файлу таблицы данных присваивается расширение .BAK и все записи из него копируются в новую структуру. Создается и становится активным файл таблицы данных с новой структурой с тем же именем, имеющий расширение .DBF. При этом дополнительному файлу таблицы данных с расширением .FPT присваивается расширение .TBK и создается новый файл таблицы данных с тем же именем и тем же содержимым, имеющий расширение .FPT.

Получение информации о структуре активной таблицы данных осуществляется командами:

DISPLAY STRUCTURE [ TO PRINT]

или

LIST STRUCTURE [TO PRINT]

Этот формат команды DISPLAY ( или LIST) выводит структуру таблицы данных, используемой в текущий момент. Этим пользуются для того, чтобы вспомнить имена полей, их типы, размеры, количество дробных десятичных знаков и т.д. при работе с таблицей данных в интерактивном режиме. Кроме того, выводится текущее количество записей в файле и дата его последней корректировки. Необязательный параметр TO PRINT позволяет выдать информацию о структуре активной таблицы данных на печать.

Команда ввода записей в конец таблицы БД имеет формат:

APPEND [BLANK]

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

После ввода команды APPEND на экране появятся имена полей. Информация, являющаяся значением того или иного поля, вводится напротив имени этого поля. Даты (по умолчанию) вводятся в американском формате mm/dd/yy, где mm-порядковый номер месяца; dd-порядковый номер дня в месяце; yy-две последние цифры года. Для заполнения поля типа Memo необходимо перейти из основного файла (*.DBF) в дополнительный файл (*.FPT). Для этого курсор устанавливается напротив имени поля типа Memo и одновременно нажимаются клавиши CTRL и HOME или выполняется двойной щелчок мыши. Происходит переход в дополнительный файл (*.FPT) и открывается свободное окно, где и набирается информация. Для возврата в основной файл (*.DBF) используется одновременное нажатие клавиш CTRL и W (^ W) или клавиша ESCAPE.

Ввод записей (загрузка таблицы данных) производится поочередно. Выход из режима загрузки БД осуществляется одновременным нажатием клавиш CTRL и END (^ END) или CTRL и W (^ W).

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

APPEND FROM <файл> [FOR <условие>]

Эта команда автоматически добавляет в активную таблицу данных те записи из файла <файл>, для которых выполняются условия < условие >. Если параметр FOR <условие> не используется, новые записи вводятся до тех пор, пока не будет завершен просмотр файла. Параметр FOR <условие> следует использовать для полей, которые имеются в обоих файлах.

Можно вводить новые записи после текущей записи БД. Для этого используется команда вставки записей:

INSERT [ BEFORE ] [BLANK]

Работа с экраном при этом осуществляется аналогично работе с командой APPEND. Необязательный параметр BEFORE дает возможность вставить новую запись перед текущей записью. При использовании необязательного параметра BLANK в таблице данных автоматически добавляется одна пустая запись (после или перед текущей записью).

Найти необходимые записи в активной таблице данных можно командой LOCATE:

LOCATE [<диапазон>] [ FOR/WHILE <условие>]

Эта команда выполняет поиск в указанном диапазоне первой записи, удовлетворяющей указанному условию, но найденную запись на экран не выводит. Просмотр найденной записи осуществляется другими командами (например, командой DISPLAY). Диапазоном по умолчанию является ALL (все).

Для продолжения поиска по указанному условию и в указанном диапазоне используется команда без параметров: CONTINUE.

Для просмотра, редактирования, удаления имеющихся записей и добавления новых записей в активную таблицу данных используется команда BROWSE, имеющая многочисленные опции, определяющие режим работы команды в каждом конкретном случае ее использования. Диапазоном действия команды по умолчанию является ALL (все), если отсутствуют необязательные параметры: <диапазон>, FOR <условие>. В качестве диапазона не используется параметр NEXT .

Сокращенный формат команды представлен ниже:

BROWSE <диапазон> [ FIELDS <список_полей> ]

[FONT <имя_шрифта> [, <размер_шрифта>]] [ FOR <условие>] [REST]

[FREEZE <имя_поля>] [LOCK <число_полей> ] [ NOAPPEND ] [NODELETE][NOEDIT | NOMODIFY] [NOLGRID] [NORGRID]

[PARTITION <номер_столбца> [LEDIT] [REDIT]]

[TITLE <текст_заголовка>] [ WIDTH <выражение>]

[VALID [:F] <выражение> [ERROR < текст_сообщения>]]

[WHEN <условие>]

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

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

В списке полей можно указать любую комбинацию полей или вычисляемых полей.

Вычисляемое поле содержит данные в режиме "только для чтения", созданные с помощью выражения. Это выражение может носить произвольную форму, но непременно должно быть допустимым выражением используемой СУБД. В этом случае в список полей входят операторы создания вычисляемых полей

Формат оператора, используемого для создания вычисляемого поля:

<вычисляемое поле> = <выражение>

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

<имя_поля> [:R] [:<ширина_столбца >]

[:V = <выражение> [:F] [:E = <текст_сообщения>]]

[:B = <нижнее_значение>, <верхнее_значение> [:F]]

[:H = <заголовок_столбца>]

[:W = <выражение>]

Опция :R устанавливает, что поле доступно только для чтения. Содержащиеся в нем данные можно будет просматривать, но не редактировать.

Опция :<ширина_столбца> задает размер отображения поля в столбцах. Значение параметра не влияет на размер поля в таблице, он только определяет внешний вид поля в окне просмотра.

Опция проверки (:V) позволяет выполнять в окне просмотра проверку достоверности данных на уровне поля с использованием указанного выражения (см. ниже описание опции :F). Если при выведении курсора из поля значение выражения есть "истина" (.T.), то помещенные в него данные считаются корректными и курсор переходит в следующее поле. Если значение выражения - "ложь" (.F.), введенные данные считаются некорректными, курсор остается в поле и выдается системное сообщение об ошибке. Если значение выражения равно 0, введенные данные считаются некорректными и курсор остается в поле, но сообщение об ошибке не выдается. Опция :F указывает, должно ли вычисляться выражение проверки при выводе курсора за пределы поля или при активизации другого окна. Если :F не задано, значение выражения вычисляется только при внесении изменений в поле. Если :F задано, выражение вычисляется даже в том случае, если поле не модифицируется. Опция проверки не действует для Memo-полей.

Если задана опция ошибки (:E), то вместо системного сообщения об ошибке появится указанный текст_сообщения. Сообщение выдается только в том случае, если командой SET NOTIFY установлено значение ON. Если включена установка SET BELL ON, раздается звуковой сигнал.

Опция :B задает диапазон, в который должны попадать значения данных в поле. Граничные выражения нижнее_значение и верхнее_значение должны соответствовать типу данных поля и не могут быть функциями, определенными пользователем. Если введенные значения данных не попадают в интервал между указанными значениями, то выдается системное сообщение об ошибке, в котором приводится допустимый диапазон для данных.

По умолчанию вводимые данные проверяются на соответствие граничным условиям только в том случае, если в содержимое поля вносится изменение. Чтобы проверка граничных условий выполнялась всегда при выводе курсора за пределы поля, задается опция проверки достоверности (:F).

Опция :H замещает принимаемые по умолчанию имена полей названиями, которые задаются с помощью аргумента заголовок_столбца. По умолчанию в качестве заголовков столбцов в окне просмотра используются имена полей.

Опция :W позволяет запретить перемещение курсора в поле в зависимости от значения указанного выражения. Если значение выражения есть "ложь" (.F.), перемещать курсор в поле запрещается. Если значение выражения - "истина" (.T.), курсор можно ввести в поле. В выражении допускаются функции, определенные пользователем.

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

В команде BROWSE можно задать шрифт окна просмотра и размер шрифта. Имя шрифта определяется символьным выражением, а его размер - числовым выражением. Например, приведенная ниже часть команды BROWSE задает 16-пунктовый шрифт Courier для полей в окне просмотра: FONT 'Courier', 16 .

Если в предложении FONT не указан размер шрифта, в окне просмотра используется шрифт размером в 10 пунктов. Если предложение FONT опущено, используется 8-пунктовый шрифт MS Sans Serif.

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

FOR <условие> задает условие отображения в окне просмотра: отображаются только те записи, для которых значение указанного условия - "истина".

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

Параметр FREEZE <имя_поля> разрешает вносить изменения только в одно поле в окне просмотра. Это поле задается своим именем. Остальные поля только отображаются, но не могут редактироваться.

Параметр LOCK <число_полей> используется для указания количества полей в левой части экрана, которые не будут перемещаться при смещении экрана по полям БД. Эти поля останутся на экране для просмотра или редактирования.

Параметр NOAPPEND не позволяет вводить в таблицу новые записи. Параметр NOEDIT или NOMODIFY запрещает внесение изменений в записи таблицы, используется для предоставления пользователю возможности просмотра записей, предотвращая возможные повреждения БД.

Параметр NODELETE запрещает помечать записи на удаление в окне просмотра. По умолчанию, чтобы пометить запись на удаление, нужно нажать клавиши Ctrl+T, или выбрать команду Toggle Delete в меню Table в Visual FoxPro или в меню Browse в ранних версиях FoxPro или щелкнуть самый левый столбец удаляемой записи.

Параметр PARTITION разбивает окно просмотра на левый и правый разделы, линия разбиения проходит по указанному номеру столбца.

Параметры NOLGRID и NORGRID, соответственно, удаляют линии сетки полей в левом разделе окна просмотра и в правом разделе окна просмотра.

Параметры LEDIT и REDIT, соответственно, задают режим редактирования для левого и правого разделов окна просмотра. Чтобы открыть оба раздела в режиме редактирования, нужно указать оба ключевых слова.

Параметр TITLE заменяет принимаемые по умолчанию имя или псевдоним таблицы, появляющиеся в строке заголовка окна просмотра, на <текст_заголовка>. Иначе в строке заголовка появится имя или псевдоним просматриваемой таблицы. Если выдать команду BROWSE WINDOW, чтобы поместить окно просмотра в окно, определенное пользователем, заголовок пользовательского окна будет заменен заголовком окна просмотра.

Параметр VALID <выражение> выполняет в окне просмотра проверку достоверности на уровне записи. Предложение VALID выполняется только в том случае, если в запись внесено изменение, и курсор переводится в другую запись. Предложение VALID не выполняется, если изменение внесено только в Memo-поле.

Если VALID возвращает значение "истина" (.T.), пользователь может перевести курсор в другую запись. Если VALID возвращает значение "ложь" (.F.), курсор остается в текущем поле и СУБД выдает сообщение об ошибке. Если VALID возвращает 0, курсор остается в текущем поле и сообщение об ошибке не выдается.

Предложение VALID не следует путать с опцией верификации (:V), которая осуществляет проверку достоверности на уровне поля (см. выше).

Опция :F запускает выполнение предложения VALID до того, как пользователь переведет курсор в следующую запись. В этом случае VALID выполняется даже тогда, когда запись не изменялась.

Параметр ERROR <текст_сообщения> заменяет сообщение об ошибке, принятое в системе по умолчанию на заданный текст сообщения. СУБД отображает указанное сообщение, когда предложение VALID возвращает значение "ложь" (.F.).

Параметр WHEN <условие> проверяет указанное условие при переводе курсора в другую запись. Если условие истинно (.T.), то пользователь может модифицировать запись, в которую он перешел. Если значение условия ложно (.F.) или 0, запись, в которую произошел переход, становится доступной только для чтения и не может быть модифицирована.

Предложение WHEN не выполняется, когда активизируется еще одно окно.

Параметр WIDTH <выражение> устанавливает верхнюю границу общего количества символов, отображаемых в поле окна просмотра, равной выражению. Содержимое поля можно прокручивать в горизонтальном направлении с помощью клавиш стрелка влево и стрелка вправо, а также используя горизонтальную линейку прокрутки. Включение предложения WIDTH не изменяет размера полей в таблице - изменяется только способ их отображения в окне просмотра. Если для какого-либо поля с помощью предложения FIELDS задана индивидуальная ширина, она отменяет для этого поля значение ширины, определенной предложением WIDTH.

Команды редактирования CHANGE и EDIT имеют аналогичный формат. Отличие состоит в том, что записи представляются не в виде таблицы, а построчно - на экран поочередно выводится по одной записи. Ее представление на экране аналогично представлению записи при работе с командами APPEND и INSERT.

Удаление записей из активной таблицы данных обычно осуществляется в два этапа. Сначала удаляемые записи должны быть помечены с помощью команды DELETE. Формат команды:

DELETE [ <диапазон> ] [ FOR/WHILE <условие>]

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

Помеченные записи физически удаляются командой PACK. Формат команды:

PACK

Команда PACK окончательно удаляет все записи в активном файле таблицы данных, помеченные для удаления командой DELETE. Пометка записей для удаления может быть отменена при помощи команды RECALL. Формат команды:

RECALL [ <диапазон> ] [ FOR/WHILE <условие>]

Параметры команды RECALL имеют аналогичное значение, что и для команды DELETE. Любая команда DELETE может быть отменена последующей командой RECALL. Команда RECALL может быть использована для отмены удаления, если по отношению к записям файла таблицы не были использованы команды PACK или ZAP.

Команда ZAP удаляет все записи из активной таблицы данных без предварительной пометки на удаление, оставляя структуру таблицу.

Формат команды:

ZAP

Команда ZAP аналогична использованию последовательно команд DELETE ALL и PACK. Записи, удаленные из активной таблицы данных командой ZAP, не могут быть восстановлены командой RECALL.
ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ

Лабораторная работа выполняется в среде реляционной СУБД Visual FoxPro. Для выполнения лабораторной работы необходимо:

1) Запустить СУБД Visual FoxPro;

2) Изучить учебный материал по созданию и изменению таблиц данных;

3) Изучить описание данной лабораторной работы, выполняя все описанные действия на компьютере в среде СУБД Visual FoxPro;

4) Создать описывающий объект из конкретной предметной области (например: книга, студент, служащий, товар, поставщик и т.д.) с несколькими свойствами;

5) Заполнить таблицу записями (не менее 15 записей);

6) Изменить структуру таблицы: внести новое поле, изменить имя имеющегося поля и т.д.;

6) Вставить новые записи перед первой записью, после четвертой записи, перед десятой записью;

7) Вставить пустые записи перед пятой записью, после последней записи;

8) Просмотреть таблицу и структуру таблицы;

9) Открыть и отредактировать созданную таблицу: модифицировать записи, добавить записи, пометить записи на удаление в режиме команд BROWSE, CHANGE, EDIT;

  1. Пометить записи на удаление командой DELETE, используя различные условия;

  2. Отменить отдельные пометки на удаление, используя команду RECALL;

  3. Проверить действия команд DELETE и RECALL, выдав на просмотр всю таблицу данных;

  4. Осуществить физическое удаление помеченных записей;

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

15) Выполнить задание, полученное от преподавателя;

16 ) Оформить отчет по лабораторной работе.
ТРЕБОВАНИЯ К ОТЧЕТУ

Отчет должен содержать:

- титульный лист;

- цель работы;

- структуру таблицы;

- таблицу данных;

- команды и результаты работы с таблицей с объяснениями.


ЛАБОРАТОРНАЯ РАБОТА N 2
РАБОТА С ФАЙЛАМИ

Цель работы: изучение команд для работы с файлами
Информацию об имеющихся файлах в системе можно получить, используя команду:

DIR [*.*]

При этом на экран монитора выводятся имена всех файлов с расширением. Если отсутствует необязательный параметр [*.*] , то выводятся имена файлов, имеющих расширение .DBF. Необязательный параметр [*.*] позволяет выводить файлы, имеющие определенное расширение, если оно будет указано вместо «*» после точки (например, *.PRG; *.DBF; *.IDX и т. д.).

Аналогичную информацию можно получить, используя команды DISPLAY или LIST в определенном формате:

DISPLAY FILES [ON<дисковод/каталог>] [LIKE<шаблон>][TO PRINT]

или

LIST FILES [ON< дисковод / каталог > ] [LIKE <шаблон>][TO PRINT]

Этот формат используется для вывода списка файлов, сохраненных на диске <дисковод> или в каталоге <каталог>. Можно просмотреть все файлы или файлы, соответствующие приведенному трафарету <шаблон>. .При отсутствии необязательных параметров ON <дисковод/ каталог> или LIKE <шаблон> будет выводиться список всех файлов баз данных с указанием количества записей и времени последней корректировки. Значение символов трафарета <шаблон> зависит от типа используемой операционной системы. Они различны для MS DOS, UNIX и т.д. Более подробную информацию по этому вопросу можно найти в руководстве по соответствующей операционной системе. Оператор TO PRINT используется для вывода информации о файлах на принтер.

С файлами можно выполнять различные операции: копировать, переименовывать, уничтожать и т.д.

Копировать можно как закрытый, так и открытый файл.

Команда копирования из закрытого файла любого типа <файл1> в несуществующий файл <файл2> имеет формат:

COPY FILE < файл1 > TO < файл2>

Имена файлов должны быть указаны с расширением. При этом создается новый файл < файл2 >, являющийся копией файла < файл1>. Эта форма команды COPY не может быть использована с открытыми файлами.

Команда копирования из открытого файла имеет формат:

COPY TO < файл > [< диапазон> ] [ FIELDS < список_полей > ]

[FOR/WHILE <условие > ] [ TYPE < тип_файла>]

В этом формате команды COPY данные копируются из активного в текущий момент файла таблицы данных в новый файл. Диапазоном действия команды по умолчанию является ALL. Если не указаны необязательные параметры FOR/WHILE <условие>, в файл копируются все записи. В противном случае копируются только записи, удовлетворяющие указанному условию.

Если не указан параметр FIELDS <список_полей>, то копируются все поля таблицы данных. Если не указано расширение имени файла, подразумевается расширение .DBF.

Можно копировать только структуру (или часть структуры) активной таблицы данных (не копируя записи). При этом создается новый файл таблицы данных с данной структурой. Команда копирования структуры таблицы в новый файл имеет формат:

COPY STRUCTURE TO <файл> [ FIELDS <поля>]

Если используется параметр FIELDS, то копируется только часть структуры, включающая поля, перечисленные в параметре FIELDS. Иначе структура копируется полностью.

В языке программирования xBase существует команда, позволяющая параметры структуры активной таблицы данных представить в виде записей в специально созданном файле формата *.DBF. Формат этой команды:

COPY TO <файл2> STRUCTURE EXTENDED

Структура файла таблицы данных, активного в текущий момент, копируется в файл <файл2> в виде записей таблицы. В дальнейшем эти записи могут быть отредактированы соответствующим образом. В этом случае файл <файл2> имеет фиксированную структуру и содержит поля FIELD_NAME (имя поля), FIELD_TYPE (тип поля), FIELD_LEN (длина поля), FIELD_DEC (точность поля). Значения записей в файле <файл2> соответствуют параметрам структуры таблицы данных.

Полученный файл может быть в дальнейшем использован для создания структуры нового файла таблицы данных. Для этого используется команда CREATE FROM. Формат команды:

CREATE < файл1 > FROM < файл2>

Эта команда создает новый файл < файл1 > со структурой, описанной в файле <файл2 > (<файл2> должен быть активным). После выполнения команды активным становится новый <файл1>, а <файл2> - закрывается.

Команда переименования закрытого файла имеет формат:

RENAME < старое_ имя_файла> TO <новое_ имя_файла>

Команда RENAME используется для переименования файла и назначения ему вместо его текущего имени нового имени. Имена файлов указываются обязательно с расширением. Могут быть приведены указатели дисководов и каталогов, если файлы расположены не в текущем каталоге. Для работы команды RENAME файл с новым именем не должен существовать, а файл со старым именем должен существовать и быть закрытым.

Закрытый файл можно уничтожить. Команда уничтожения файла имеет формат:

DELETE FILE <имя файла>

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

Для удаления закрытого файла можно использовать также команду ERASE. Формат команды:

ERASE <имя_файла>

Расширение имени файла должно быть указано в составе имени файла.

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

Сортировка и индексирование проводятся с целью упорядочения записей в таблицах данных в алфавитном, хронологическом или числовом порядке (в зависимости от типа поля, по которому выполняется сортировка или индексирование). При сортировке создается новый отсортированный файл, куда заносятся записи (или часть записей) из сортируемого файла в определенном порядке. Команда сортировки активной таблицы данных имеет формат:

SORT <диапазон> TO <файл> ON <поле1> [/A][/C][/D] [,<поле2> [/A][/C][/D]...] [FOR/WHILE <условие>] [FIELDS <список_полей>]

Cортировка идет по полю - ключу, указанному в параметре ON <поле1>. Отсортированная таблица записывается в файл с расширением .DBF. При наличии поля типа Memo при сортировке создается также файл с расширением .FPT. Сортировка может выполняться по возрастанию (/A), по убыванию (/D), с игнорированием верхнего и нижнего регистра (/C). При этом рассматриваются ASCII - коды символов поля <поле1>. Параметр /C может быть использован совместно с параметрами /A или /D. Если вводятся два параметра, используется только одна косая черта (например, /AC). При отсутствии параметров /A, /C, /D сортировка идет по возрастанию. Диапазон по умолчанию имеет значение ALL.

Параметры FOR/WHILE <условие> задают условия выбора записей из таблицы БД. Параметр FIELDS указывает поля, которые должны войти в создаваемую отсортированную таблицу данных. Имя отсортированного файла имеет расширение .DBF. Возможна сортировка по нескольким полям. В этом случае они указываются в команде через запятую:<поле1>, <поле2> и т.д.

В случае необходимости экономии памяти вместо команды SORT используется команда INDEX, создающая индексный файл. В индексном файле хранятся только указатели номеров записей (индексы) в упорядоченном виде, но записи там отсутствуют. Формат команды:

INDEX ON <поле1> [+<поле2>[+...]] TO <индексный_файл> [FOR/WHILE <условие>]

Команда INDEX используется для формирования индексного файла для активного файла таблицы БД. Индексирование (упорядочивание) записей идет по полю - ключу, указанному в параметре ON <поле1>. Индексирование проводится по возрастанию ASCII-кодов символов поля <поле1>. Создаваемый индексный файл будет иметь расширение имени .IDX. Индексирование можно проводить по нескольким полям. В этом случае они должны быть однотипны (или приведены к одному типу) и в команде их имена надо объединить знаком «+». Упорядочение будет проводиться сначала по полю <поле1>, внутри каждой группы <поля1> - по полю <поле2> и т.д.

При работе с индексным файлом он должен быть подключен к активной таблице данных, для которой создавался. При индексации создаваемый индексный файл автоматически подключается к файлу таблицы БД. Отключение индексного файла осуществляется автоматически при закрытии активного файла таблицы БД или командой SET INDEX TO (без параметров). Подключение индексного файла к активной таблице данных осуществляется командой:

SET INDEX TO <имя_индексного_файла>

Подключение индексного файла можно также осуществить при активизации таблицы данных командой:

USE <файл_таблицы_БД> INDEX <имя_индексного_файла>

Главное назначение индексирования - это ускорение доступа к данным. Поэтому аппарат индексирования широко применяется в реляционных системах, одним из недостатков которых является медленный поиск данных. В проиндексированном файле можно осуществить быстрый поиск необходимых данных по полю, по которому проводилось индексирование (по ключу). При этом индексный файл должен быть подключен и используются команды FIND или SEEK. Формат команды FIND:

FIND <символьное_выражение>/

Команда FIND устанавливает указатель записей на номер первой записи в активной таблице данных с подключенным индексным файлом, для которой значение поля - ключа индексирования соответствует приведенной символьной строке <символьное_выражение> или численному значению . Соответствие должно быть полным, если не была выполнена команда установки SET EXACT OFF .

Если необходимо провести поиск по содержимому переменной памяти, перед переменной памяти необходимо указать функцию макроподстановки (&).

Команда SEEK аналогична команде FIND. Однако команда SEEK не ограничена выполнением поиска символьной строки или численного значения, а может быть использована для поиска произвольных выражений. Формат команды SEEK:

SEEK <выражение>

В случае символьного выражения <выражение> ограничивается одиночными кавычками ' ', двойными кавычками “ “ или квадратными скобками [ ], числовое выражение указывается без ограничителей, выражение типа даты ограничивается фигурными скобками, логическая константа ограничивается точками.
ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ

Лабораторная работа выполняется в среде реляционной СУБД Visual FoxPro. Для выполнения лабораторной работы необходимо:

Лабораторная работа выполняется в среде реляционной СУБД Visual FoxPro. Для выполнения лабораторной работы необходимо:

1) Запустить СУБД Visual FoxPro;

2) Изучить учебный материал по выполнению операций над файлами;

  1. Изучить описание данной лабораторной работы, выполняя все описанные действия на компьютере в среде СУБД Visual FoxPro;

  2. Получить информацию о файлах текущего каталога, указанного каталога;

  3. Выполнить копирование одного из имеющихся файлов. Проверить выполнение команды копирования командой DIR;

  4. Выполнить переименование скопированного файла. Проверить выполнения команды переименования командой DIR;

  5. Выполнить удаление переименованного файла. Проверить выполнение команды удаления командой DIR;

  6. Открыть таблицу данных, созданную в лабораторной работе №1 и выполнить копирование этой таблицы в новые файлы: всей таблицы, отдельных столбцов, отдельных записей (выбранных по условию);

  7. Выполнить копирование структуры открытой таблицы (без данных);

  8. Просмотреть полученные новые файлы таблиц данных командой BROWSE, предварительно их открыв;

  9. Открыть таблицу данных, созданную в лабораторной работе №1 и выполнить различные типы сортировки: всей таблицы, отдельных записей (выбранных по условию), отдельных столбцов, а также сортировку по различным полям, по убыванию, по возрастанию, по нескольким полям;

  10. Просмотреть полученные файлы с отсортированными данными;

  11. Открыть исходную таблицу и выполнить ее индексирование по одному полю, по нескольким полям, с указанием условия индексирования;

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

  13. Используя команду SEEK (FIND) осуществить быстрый поиск в таблице данных с подключенным индексом;

  14. Отключить и уничтожить индексные файлы;

17) Выполнить задание, полученное от преподавателя;

18 ) Оформить отчет по лабораторной работе.
ТРЕБОВАНИЯ К ОТЧЕТУ

Отчет должен содержать:

- титульный лист;

- цель работы;

- таблицу данных;

- команды и результаты работы с файлами, таблицей с объяснениями.
ЛАБОРАТОРНАЯ РАБОТА N 3
КОМАНДЫ - ФУНКЦИИ И СТАНДАРТНЫЕ ФУНКЦИИ

Цель работы: изучение команд-функций и стандартных функций
В xBase существуют специальные команды - функции, к которым относятся команды подсчета записей в активной таблице данных, вычисления среднего значения и суммы по числовым полям активной таблицы данных.

Команда подсчета записей в активной таблице данных имеет формат:

COUNT [<диапазон>] [ FOR/WHILE <условие> ] [ TO < ВПП>]

Записи подсчитываются в пределах диапазона ( по умолчанию ALL). При использовании необязательных параметров FOR/WHILE в подсчете используются только те записи, которые удовлетворяют условию <условие>. Результат может быть занесен во временную переменную памяти <ВПП>.

Команда вычисления среднего значения для полей числового типа активной таблицы данных имеет формат:

AVERAGE [<диапазон>] [ <список_выражений> ]

[ FOR/WHILE < условие > ] [ TO <список_ВПП>]

Обрабатываются значения всех числовых полей, если списком выражений не указано иначе. Получаемые значения могут быть занесены в переменные памяти (см.<список_ВПП>), число которых должно равняться числу обрабатываемых полей. Параметры FOR/WHILE указывают, какие записи следует обрабатывать. Диапазон по умолчанию имеет значение ALL.

Команда вычисления сумм для числовых полей имеет формат:

SUM [<диапазон>] [<список_выражений>]

[FOR/WHILE <условие>] [TO <список_ВПП>]

Диапазон по умолчанию имеет значение ALL. Операция может выполняться не над всеми числовыми полями, а лишь над полями, указанными в списке выражений. Параметры FOR/WHILE указывают, что в суммировании участвуют значения полей тех записей, которые удовлетворяют указанному условию. Полученные суммы могут быть занесены в переменные памяти, число которых должно равняться числу обрабатываемых полей.

Система программирования xBase содержит около 100 стандартных встроенных функций. Ниже приведены некоторые из них.

Функции для обработки числовых выражений

ABS (<числовое_выражение>) - получение абсолютного значения.

INT (<числовое_выражение>) - получение целого значения.

SQRT (<числовое_выражение>) - определение квадратного корня.

LOG (<числовое_выражение>) - вычисление натурального логарифма.

EXP (<n>) - вычисление экспоненциальной функции (n -показатель степени).

ROUND (<числовое_выражение, <n>) - округление до n дробныхразрядов.

MIN (<n1>, <n2>) -определение минимального из двух чисел n1 и n2.

MAX (<n1>, <n2>) -определение максимального из двух чисел n1 и n2.

STR (<числовое выражение>,<n>[,<k>]) - преобразование числа в строку символов длиной n с сохранением k дробных значений.

Функции для работы с датой

DATE () - определение текущей системной даты.

TIME () - определение текущего системного времени.

DAY (<дата>) - определение дня месяца для указанной даты.

MONTH (<дата>)- определение номера месяца для указанной даты.

YEAR (<дата>) - определение года для указанной даты.

DOW (<дата>) - определение номера дня недели для указанной даты (воскресенье - первый день недели, суббота - седьмой день недели).

CDOW (<дата>) - получение названия дня недели для указанной даты (на английском языке).

CMONTH (<дата>) - получение названия месяца для указанной даты (на английском языке).

CTOD (<символьное выражение даты>) - преобразование символьного представления даты в данные типа даты.

DTOC (<дата>) - преобразование даты в символьное выражение.
  1   2
Учебный текст
© perviydoc.ru
При копировании укажите ссылку.
обратиться к администрации