Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сокращённые консультации к ГОС.doc
Скачиваний:
3
Добавлен:
21.09.2019
Размер:
377.34 Кб
Скачать

11. Модификация таблицы

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

Добавление полей является самой безопасной операцией. Для ее реализа­ции необходимо с помощью клавиш-стрелок установить курсор на строку, перед которой необходимо вставить новое поле (в любом ее столбце) и на­жать кнопку Insert (вставить). При этом появляется новый столбец с именем New Field.

Для удаления лишнего поля достаточно выделить его в окне Конструкто­ра таблиц и нажать клавишу Delete (удалить). Если открытый на данный момент индексный файл не содержит ссылок на удаляемое поле, то поле бу­дет удалено. Если такие ссылки имеются, то появится предупреждающее со­общение.

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

Переопределение характеристик полей, а именно типа, длины или чис­ла десятичных знаков в числовом поле, может вызвать проблемы. Легко выполняется увеличение длины полей. Для этого достаточно в кон­структоре таблиц выделить нужное поле и увеличить его длину. При этом соответствующий DBF-файл будет переписан и приобретет большие раз­меры.

Проблемы могут возникнуть при попытке уменьшить размеры полей. При этом может произойти усечение строк в символьных полях до нужных разме­ров. Сокращение целой части числового поля может привести к потере той части чисел, у которых она не помещается в отведенные размеры (в поле за­писывается символ звездочка). Сокращение количества знаков в дробной части понижает точность представления числа. Возможны проблемы и при изменении типов полей.

11, 13. Добавление и удаление записей командами sql. Модификация таблицы

Часто оказывается необходимым изменить ее структуру таблицы. С этой целью следует перевести таблицу в режим конструктора. Это достигается командой меню View → Table Designer или SQL-командой

MODIFY STRUCTURE.

Все изменения структуры таблицы необходимо сохранить, нажав клавиши Ctrl+W или выйдя из окна Table Designer. При этом на экране появится диалоговое окно с вопросом: «Make structure changes permanent?», т.е. «Сделать изменения структуры постоянными?». Если нужно сохранить внесённые изменения, нажмите «Yes». При ответе No внесённые изменения не будут сохранены.

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

ALTER TABLE (изменить таблицу).

Предварительно таблица должна быть закрыта командой USE.

Например:

ALTER TABLE <Employee>

ADD COLUMN Address_2 CHAR (30)

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

Удаление поля совершает команда:

ALTER TABLE <имя таблицы>

DROP COLUMN Address_2.

Добавление записей

Чтобы добавить в таблицу новую запись, следует выбрать в меню Table пункт Append New Record или нажать комбинацию клавиш CTRL+Y. Вместо этого можно использовать команду

APPEND BLANK

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

Удаление записей из таблицы

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

Для пометки записей используют команду

DELETE [<границы>][WHILE <вржL>][FOR <вржL>]

Если выполнить команду

DELETE ALL

Будут помечены на удаление все записи таблицы.

Примеры: DELETE RECORD 2 && удалить запись под номером 2

DELETE ALL FOR address='Углич' && предполагается, что в таблице имеется поле address, содержащее указанный текст.

После выполнения команды DELETE запись ещё не удалена физически. Она только помечена для удаления. При этом закрашивается черным цветом крайнее левое поле соответствующей строки.

Физическое удаление помеченных записей производится командой

PACK (Упаковать).

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

Пометку удаления можно снять, командой

RECALL

Если помечено несколько записей, выполните команду

RECALL ALL.

Определить, помечена ли запись для удаления, позволяет функция DELETED(). Для записи помеченной к удалению, функция возвращает логическое значение .T.

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

SET DELETED ON (по умолчанию установлено SET DELETED OFF).

Всё содержимое активной таблицы удаляет команда

ZAP.

При этом структура таблицы сохраняется.

Визуальными средствами FoxPro пометка записи на удаление осуществляется, в режиме просмотра таблицы, щелчком по её крайнему левому полю. Оно, при этом, приобретает чёрный цвет, который называется «метка удаления» (Delete Mark). Повторный щелчок снимает выделение. Другой способ пометки состоит в выборе пункта Delete Records…(Стереть записи) в меню Table (Таблица).

Физическое удаление помеченных записей достигается выбором пункта Remove Deleted Records (Удалить помеченные записи) меню Table. Теперь запись будет удалена полностью, без возможности восстановления. Удалённые из таблицы записи не могут быть восстановлены, поэтому к процессу удаления нужно подходить очень внимательно.