- •Консультации к госэкзаменам
- •4. Команды установки параметров
- •11. Модификация таблицы
- •11, 13. Добавление и удаление записей командами sql. Модификация таблицы
- •19. Поиск данных в неиндексированной таблице
- •20. Фильтрация данных в неиндексированной таблице
- •23. Сортировка данных в таблице
- •24. Создание базы данных
- •26. Создание и использование переменных
- •28. Функции работы с датой и временем
- •29. Функции для работы с таблицей
- •30. Функции для преобразования типов данных
- •31. Создание программных файлов
- •32. Создание и работа с меню
- •36. Понятие события и метода
- •39. Целостность, достоверность и непротиворечивость данных
- •40. Контроль достоверности данных на уровне таблицы
- •42. Отчёт. Создание отчета средствами мастера
- •44. Формирование запросов средствами команд языка sql
- •Практические задания
- •8. Создание кнопок.
- •12. Программа для вычисления
- •13. Работа с функциями времени
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. Теперь запись будет удалена полностью, без возможности восстановления. Удалённые из таблицы записи не могут быть восстановлены, поэтому к процессу удаления нужно подходить очень внимательно.