Распечатать страницу

Команды, оперирующие таблицей базы данных в VFP

« Назад

Команда

ADD TABLE TableName | ? [NAME LongTableName]

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

Опция и параметры (см. также табл. 1.6):

TableName – имя DBF-файла (с расширением или без него) добавляемой таблицы. Может содержать путь к файлу. Если путь не указан, то файл берется из директории по умолчанию.

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

NAME LongTableName – длинное имя таблицы. Может содержать до 128 символов. При отсутствии опции длинное имя будет совпадать с именем DBF-файла без расширения.

Замечания:

  1. Таблица базы данных станет свободной в результате соответствующего употребления команды REMOVE TABLE.

  2. База данных, в которую добавляется таблица, не должна быть вовлечена в транзакцию.

Пример. В существующую базу данных People добавляется свободная таблица d:\Animals.

tableName = 'd:\Animals'

create table (tableName) free (Name C(20))

&& Закрываем вновь созданную таблицу

use

open database d:\People

&& Добавляем таблицу в базу данных

&& Для указания имени файла употребляем выражение с именем

add table (tableName)

display databases

Команда

RENAME TABLE TableName1 TO TableName2

изменяет длинное имя TableName1 на имя TableName2 таблицы в текущей базе данных.

Имя DBF-файла свободной таблицы изменяется командой RENAME.

Имя DBF-файла таблицы базы данных командой RENAME изменить нельзя, поскольку она не обновляет связь базы данных с DBF-файлом. Поэтому программное изменение имени DBF-файла таблицы базы данных выполняется в 3 этапа:

1) таблица базы данных делается свободной (команда REMOVE TABLE);

2) изменяется имя DBF-файла таблицы (команда RENAME);

3) таблица с измененным именем добавляется в базу данных (команда ADD TABLE).

Интерактивно имя DBF-файла таблицы базы данных изменяется в диалоге (рис. 14.6), появляющемся, например, после выбора таблицы и нажатия на правую кнопку мыши (можно также нажать F2 или выбрать в меню Project – Rename File).

198.1.-Можно-изменить-имя-DBF-файла-таблицы-базы-данных

Рис. 14.6. Можно изменить имя DBF-файла таблицы базы данных

Пример:

set database to d:\HomeLibrary\HomeLibrary.dbc

if InDBC('WorkT', 'TABLE') then

                                            rename table WorkT to WorkT2

endif

Команда

REMOVE TABLE TableName | ? [DELETE] [RECYCLE]

удаляет таблицу из текущей базы данных. Если SET SAFETY установлен в ON, то возникнет предупреждающий диалог.

Опция и параметр (см. также табл. 1.6):

TableName – имя удаляемой таблицы. Если имя не задано откроется диалог Remove (рис. 14.7) в котором выбирается удаляемая таблица.

198.2.-Диалог-Remove

Рис. 14.7. диалог Remove

DELETE – обеспечивает удаление таблицы с диска. При удалении таблицы с диска пользователь не получит никакого предупреждения, даже если SET SAFETY установлен в ON.

После выполнения команды таблица, если она не удалена с диска, становится свободной и может быть добавлена в любую базу данных (команда ADD TABLE).

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

Команда

DROP TABLE TableName | FileName | ? [RECYCLE]

удаляет таблицу из текущей базы данных и с диска или свободную таблицу с диска. Одновременно удаляется и соответствующие CDX- и FPT-файлы.

Таблица будет удалена, даже если она открыта. При выполнении команды пользователь не получит никакого предупреждения, даже если SET SAFETY установлен в ON.

Параметры (см. также табл. 1.6):

TableName – имя удаляемой из базы данных и диска таблицы. Если имя не задано откроется диалог Remove (см. рис. 14.7), в котором выбирается удаляемая из базы данных и диска таблица.

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

См. также замечание к команде REMOVE TABLE.

Команда

FREE TABLE TableName

удаляет из таблицы ссылку на базу данных. Таблица не должна быть открыта.

Параметр:

TableName – имя DBF-файла. Может включать и путь.

Команда применяется в том случае, когда база данных по недосмотру удалена с диска без употребления команды DELETE DATABASE. Тогда ее таблицы продолжают хранить ссылку на уже несуществующую базу данных.

Если же база данных на диске имеется, то для удаления из нее таблицы должна быть использована команда REMOVE TABLE, поскольку она удаляет из базы и все имеющиеся на таблицу ссылки. Команда FREE TABLE, если она употреблена с такой ситуации, удалит только ссылку на базу данных из таблицы. Такое неполноценное удаление может сделать базу данных непригодной для использования.