Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы / gorev_akhajan_makakshiripov_ehffektivnaja_rabota_s_subd

.pdf
Скачиваний:
52
Добавлен:
26.04.2015
Размер:
3.17 Mб
Скачать

Рис. 6.1. Окно и панель инструментов Конструктора БД в Visual FoxPro

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

программного управления базами данных и их объектами.

Таблица 6.1. Команды и функции, управляющие базами данных и их объектами

ADATABASE()

CREATE VIEW

MODIFY

 

 

CONNECTION

ADBOBJECTS()

DBC()

MODIFY

 

 

DATABASE

ADD TABLE

DBGETPROP()

MODIFY

 

 

PROCEDURE

ALTER TABLE

DBSETPROP()

MODIFY

 

 

STRUCTURE

APPEND

DELETE

MODIFY VIEW

PROCEDURES

CONNECTION

 

CLOSE DATABASE

DELETE

OPEN DATABASE

 

DATABASE

 

COPY

DELETE VIEW

PACK DATABASE

PROCEDURES

 

 

CREATE

DISPLAY

REMOVE TABLE

CONNECTION

DATABASE

 

CREATE

INDBC()

SET DATABASE

DATABASE

 

 

CREATE SQL VIEW LIST DATABASE

VALIDATE

Ⱦɚɧɧɚɹ ɜɟɪɫɢɹ ɤɧɢɝɢ ɜɵɩɭɳɟɧɚ ɷɥɟɤɬɪɨɧɧɵɦ ɢɡɞɚɬɟɥɶɫɬɜɨɦ %RRNV VKRS Ɋɚɫɩɪɨɫɬɪɚɧɟɧɢɟ ɩɪɨɞɚɠɚ ɩɟɪɟɡɚɩɢɫɶ ɞɚɧɧɨɣ ɤɧɢɝɢ ɢɥɢ ɟɟ ɱɚɫɬɟɣ ɁȺɉɊȿɓȿɇɕ Ɉ ɜɫɟɯ ɧɚɪɭɲɟɧɢɹɯ ɩɪɨɫɶɛɚ ɫɨɨɛɳɚɬɶ ɩɨ ɚɞɪɟɫɭ piracy@books-shop.com

DATABASE

CREATE TABLE

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

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

Как добавить существующую таблицу в базу данных? В Project Manager выберите пункт Tables из вкладки Аll или Data, затем выполните команду Add. Программным путем то же самое можно сделать, выполнив следующие команды:

OPEN DATABASE auto_store && Открывается база данных && AUTO_STORE ADD TABLE salesman && В нее добавляется таблица SALESMAN

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

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

Как получить доступ к таблице из другой базы данных? Создайте в базе данных представление, включающее нужную таблицу. Или получите доступ к таблице с помощью команды USE и разделительного символа "!". Символ "!" надо использовать для ссылки на таблицу из другой, не текущей, базы данных. Например, если вы хотите просмотреть таблицу Salesman из базы данных Auto_Store, выполните следующие команды:

USE Auto_Store!Salesman

BROWSE

В предыдущем примере база данных Auto_Store открывается автоматически при выполнении команды USE, однако Visual FoxPro не устанавливает Auto_Store в качестве текущей базы данных. Открытая таким способом база данных автоматически закрывается, когда вы закрываете таблицу, если база данных не была явно открыта до этого.

Когда вы добавляете таблицу в базу данных, Visual FoxPro изменяет заголовок файла таблицы, включая туда информацию о пути и имени файла базы данных. Этот путь и имя файла базы данных называются обратной связью, поскольку эта информация связывает таблицу с владеющей ею базой данных. Процесс удаления таблицы из базы данных не только удаляет ссылку на таблицу и ассоциированную с ней информацию из словаря БД Visual FoxPro, но и изменяет обратную связь, чтобы отметить таблицу как свободную.

Вы можете удалить таблицу из базы данных интерактивно или с помощью команды REMOVE TABLE. При удалении таблицы из базы данных вы можете и физически удалить файл таблицы с диска. В Project Manager выберите имя таблицы и нажмите кнопку Remove. Если вы работаете в Конструкторе баз данных, выделите имя таблицы и выберите команду Remove из меню

Database.

Последовательность действий по удалению таблицы Salesman из БД Auto_Store программным путем показа в следующем примере:

OPEN DATABASE Auto_Store

REMOVE TABLE Salesman

Удаление таблицы из базы данных автоматически не удаляет файл таблицы. Если вы хотите одновременно удалить таблицу из базы данных и DBF-файл с диска, включите опцию DELETE в

команду REMOVE TABLE.

Удалить базу данных с диска можно с помощью Project Manager или командой DELETE

www.books-shop.com

DATABASE.

Для удаления базы данных с диска всегда используйте один из вышеуказанных методов. Удаление базы данных с помощью диспетчера проектов или по команде DELETE DATABASE автоматически обновляет обратные связи в файлах таблиц базы данных. Если вы удалите БД с помощью какой-нибудь утилиты работы с файлами, то в таблицах, принадлежащих БД, останутся ссылки на уже несуществующую БД, и вы не сможете их использовать.

Команда DELETE DATABASE не удаляет файлы таблиц с диска, а только помечает их как свободные. Если вы хотите одновременно с базой данных удалить и файлы таблиц, включите опцию DELETE TABLES в команду DELETE DATABASE.

Вприложении Visual FoxPro можно использовать несколько баз данных одновременно. Для этого либо одновременно откройте все требуемые вам БД, либо сошлитесь на таблицы в закрытых базах данных, как это было показано ранее. Если одновременно открыто несколько БД, вы можете установить текущую базу данных и выбирать таблицы из нее без указания конкретной ссылки.

Как открыть несколько баз данных? В Project Manager выделите имя базы данных и нажмите кнопку Modify или Open, в зависимости от вашей цели. Или последовательно используйте команду OPEN DATABASE.

Когда вы открываете новую базу данных, старые не закрываются. Все уже открытые базы данных так и остаются открытыми, а последняя открытая БД становится текущей.

Все таблицы или другие объекты, которые вы создаете, автоматически становятся частью текущей базы данных. Команды и функции, такие как ADD TABLE и DBC(), манипулирующие с открытыми БД, оперируют с текущей базой данных.

Вы можете объявить текущей любую из открытых БД с помощью раскрывающегося списка на стандартной панели инструментов Visual FoxPro или командой SET DATABASE.

Вследующем примере открываются три базы данных, первая объявляется текущей, и ее имя отображается на экране с помощью функции DBC():

OPEN DATABASE Auto_Store

OPEN DATABASE Connect_Data

OPEN DATABASE Count_Data

SET DATABASE TO Auto_Store

?DBC()

ВVisual FoxPro одна или несколько баз данных открываются автоматически при выполнении запроса или формы, в которых используются несколько баз данных. Для того чтобы не потерять управление в программе, явно объявите текущую базу данных.

Как выбрать таблицу из текущей базы данных? Выполните команду USE со знаком вопроса "?" В диалоговом окне Use выберите нужную таблицу. Если вам нужна таблица, не входящая в открытую базу данных, в диалоговом окне Use выберите опцию Other.

Закрыть базу данных можно в Project Manager или командой CLOSE DATABASE. В Project Manager выделите имя базы данных и выберите команду Close. В следующем примере закрывается база данных Auto_Store:

SET DATABASE ТО Auto_Store

CLOSE DATABASE

Оба указанных способа закрывают базу данных автоматически. Еще один способ закрыть базу данных и другие открытые объекты - включить предложение ALL в команду CLOSE.

Выполнение команды CLOSE DATABASE в окне Command не приведет к закрытию базы данных, если она была открыта одним из следующих способов:

В Project Manager в расширенном режиме просмотра содержимого базы данных.

Формой, запущенной в собственной Data Session.

Вэтих случаях БД остается открытой до тех пор, пока она не будет закрыта в Project Manager или пока не будет закрыта соответствующая форма.

ВVisual FoxPro текущая база данных используется в качестве первичной области видимости для именованных объектов типа таблиц. Когда база данных открыта, любые запрашиваемые объекты типа таблиц, представлений, связей ищутся сначала в текущей базе данных. Если объект не найден, поиск продолжается в пути по умолчанию.

Например, если таблица Model ассоциирована с базой данных Auto_Store, приведенные ниже команды всегда найдут таблицу Model в базе данных.

OPEN DATABASE Auto_Store

www.books-shop.com

ADD TABLE C:\MYPROJECT\MODEL.DBF

USE Model

В следующем примере поиск таблицы Body производится в текущей базе данных:

USE Body

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

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

Когда вы создаете базу данных, Visual FoxPro создает и открывает для монопольного использования файл с именем БД и расширением DВС (DataBase Container). В этом файле хранится вся информация о базе данных, включая имена файлов и объектов, ассоциированных с ней. Сами объекты верхнего уровня типа таблиц или полей в файле DBC не хранятся. Хранятся только пути к файлам таблиц.

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

Схема базы данных - это визуальное представление структур таблиц и установленных отношений между ними. Схема открытой базы данных отображается в окне Конструктора баз данных.

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

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

Конструктор баз данных является концептуальным представлением схемы базы данных, однако вам может потребоваться просмотреть содержимое файла базы данных непосредственно. Можно сделать это, выполнив команду USE для файла DBC неоткрытой базы данных. В следующем примере открывается окно просмотра, куда выводится содержимое файла базы данных Auto_Store в табличном виде.

CLOSE DATABASE Auto_Store

USE AUTO_STORE.DBC EXCLUSIVE

BROWSE

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

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

Как добавить поле к файлу DВС?

1.Откройте файл DВС для монопольного доступа командой USE.

2.Выполните команду MODIFY STRUCTURE.

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

AUTO_STORE.DBC:

USE AUTO_STORE.DBC EXCLUSIVE

MODIFY STRUCTURE

При добавлении нового поля в файл базы данных начинайте имя этого поля с символов "U_" для обозначения поля пользователя. Это поможет вам избежать конфликтов с любыми возможными изменениями структуры файла DBC.

Не изменяйте системные поля в файле DBC. Любые такие изменения могут нарушить

www.books-shop.com

целостность базы данных.

Вы можете проверить целостность базы данных с помощью команды VALIDATE DATABASE. В следующем примере файл базы данных Auto_Store проверяется на целостность:

OPEN DATABASE Auto_Store EXCLUSIVE

VALIDATE DATABASE

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

Использование словаря данных

Базы данных Visual FoxPro используют словарь данных, который повышает эффективность разработки и использования базы данных и освобождает вас от необходимости писать собственные программы обеспечения правил на уровне полей и записей или проверки уникальности значений первичных ключей. Словарь данных Visual FoxPro позволяет создавать следующие элементы:

Длинные имена таблиц.

Комментарии для каждого поля, таблицы и базы данных.

Длинные имена полей.

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

Значения полей по умолчанию.

Первичные ключи и ключи-кандидаты.

Правила на уровне полей и правила на уровне записей.

Триггеры.

Постоянные отношения между таблицами базы данных.

Хранимые процедуры.

Связи с удаленными источниками данных.

Локальные и удаленные представления.

Некоторые элементы словаря, такие как длинные имена полей, первичные и ключикандидаты, значения по умолчанию, правила на уровне полей и записей, триггеры, хранятся в файле DBC, но становятся доступны в процессе создания таблицы или представления.

Вы можете создавать хранимые процедуры для обработки информации в базе данных. Хранимая процедура представляет собой код Visual FoxPro, записанный в файле DBC. Эти процедуры оперируют только с данными конкретной базы данных. Хранимые процедуры загружаются в память во время открытия базы данных и выполняются намного быстрее, чем процедуры из программных файлов.

Для создания, редактирования или удаления хранимой процедуры в Project Manager выделите имя базы данных, выберите в списке пункт Stored Procedures, затем нажмите одну из кнопок: New, Modify или Remove.

Для этой же цели в Конструкторе баз данных выберите из меню Database команду Edit Stored Procedures.

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

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

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

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

Изменения значений в главной таблице, если это изменение приведет к появлению не связанных ("одиночных") записей подчиненной таблицы.

www.books-shop.com

Удаления записей из главной таблицы, если для нее существуют соответствующие записи в подчиненных таблицах.

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

Для работы с Построителем ссылочной целостности откройте Конструктор баз данных. В меню

Database выберите Referential Integrity.

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

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

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

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

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

В Конструкторе среды окружения данных (Data Environment Designer) отображать установленные по умолчанию связи для форм и отчетов.

Использовать аппарат поддержки ссылочной целостности.

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

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

Как создать постоянные отношения между таблицами?

ВКонструкторе баз данных выберите индекс, который вы хотите связать, и перетащите его на индекс связываемой таблицы, или включите предложение FOREIGN KEY в команду CREATE TABLE или команду ALTER TABLE.

Если после этого вы посмотрите на схему базы данных в Конструкторе БД, то увидите линию, соединяющую две таблицы и обозначающую новую постоянную связь.

Тип индексного тега или ключа определяет тип устанавливаемого постоянного отношения. Вы должны использовать первичный или индексный тег-кандидат или ключ со стороны "один" в отношении "один ко многим"; со стороны "много" вы должны использовать обычный индексный тег или ключ.

Для удаления постоянного отношения между таблицами в Конструкторе баз данных выделите щелчком линию, соединяющую таблицы. Толщина линии увеличится, отмечая выбор отношения между таблицами. После этого нажмите клавишу Del.

Каждая база данных Visual FoxPro содержит свойства Comment и Version. Вы всегда можете узнать содержание этих свойств с помощью функции DBGETPROP().

Вследующем примере на экран выводится номер версии базы данных Auto_Store:

?DBGETPROP('Auto_Store', 'DATABASE', 'VERSION')

Возвращаемое значение является номером версии файла DBC и доступно только для чтения. Программно ввести комментарий в базу данных можно с помощью функции DBSETPROP(). Для этого используйте опцию COMMENT в функции DBSETPROP().

В следующем примере вводится новый комментарий для базы данных Auto_Store:

www.books-shop.com

? DBSETPROP('Auto_Store', 'DATABASE', 'COMMENT', 'Это моя первая БД')

Функции DBGETPROP() и DBSETPROP() можно использовать для просмотра и изменения свойств других объектов базы данных, о чем мы расскажем позднее.

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

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

Таблицу можно конструировать и создавать в интерактивном режиме с помощью Конструктора таблиц, который доступен из Project Manager или из меню File; ее также можно создать программно.

Чтобы создавать и модифицировать таблицы из программ, используются команды, приведенные в табл. 6.2.

Таблица 6.2. Команды создания и модификации таблиц

ALTER TABLE

CLOSE TABLES

CREATE TABLE

DELETE FILE REMOVE TABLE

Для создания таблицы базы данных в Project Manager выберите базу данных, затем заголовок Tables и нажмите кнопку New, чтобы вызвать Конструктор таблиц. Окно Конструктора таблиц с необходимыми пояснениями показано на рис. 6.2. При открытой базе данных вы можете выполнить команду CREATE TABLE.

www.books-shop.com

Рис. 6.2.

Следующий фрагмент программы создает таблицу Salesman с четырьмя столбцами под именами key_salman, last_name, first_name, patronymic:

OPEN DATABASE Auto_Store

CREATE TABLE Salesman (key_salmen I, ; last_name C(17), ;

first_name C(17), ; patronymic C(17))

Напомним, что в Visual FoxPro символ "I" обозначает поле с типом данных Integer, которое имеет стандартную длину, и она не указывается. Символ "C(17)" обозначает символьное поле с типом данных Character и длиной 17 символов.

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

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

Если таблица связана с базой данных, можно задать длинное имя таблицы. Длинное имя таблицы может содержать до 128 символов и употребляется вместо стандартного имени для идентификации таблицы в базе данных. Visual FoxPro использует длинные имена таблиц (если они заданы) во всех случаях, когда имя встречается в интерфейсе, например в Конструкторе баз данных, в Конструкторе запросов, Конструкторе представлений, а также в заголовке окна

Browse.

Для присвоения таблице базы данных длинного имени в Конструкторе таблиц введите имя в поле Table Name (см. рис 6.2). В программе используйте предложение NAME в команде CREATE

www.books-shop.com

TABLE. Следующий фрагмент создает таблицу Automobil и присваивает ей более осмысленное имя Automobile_Passenger_Car:

CREATE TABLE Automobil NAME Automobile_Passenger_Car ; (key_auto I, ; key_model I, date_issue D, cost N(10,2))

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

В команде CREATE TABLE задается имя того DBF-файла, который Visual FoxPro создает для хранения новой таблицы. Это имя файла является стандартным именем таблицы как для таблиц, связанных с базой данных, так и для свободных таблиц.

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

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

Когда создается таблица базы данных, Visual FoxPro запоминает длинные имена полей в записи файла DBC. Первые 10 символов длинного имени запоминаются и в файле DBF в качестве имени поля.

Если окажется, что усечения длинных имен до 10 символов не являются уникальными в таблице, Visual FoxPro генерирует имена, состоящие из первых n символов длинных имен с добавленными к ним последовательными номерами так, чтобы общая длина сгенерированных имен составляла 10 символов. Например, следующие длинные имена будут преобразованы в такие 10-символьные:

Длинное имя

Короткое имя

automobile_passenger_car_key_auto

automobile

automobile_passenger_car_key_model

automobil1

automobile_passenger_car_date_issue automobil2

...

...

automobile_passenger_car_cost

automobi11

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

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

Правила составления длинных имен полей такие же, как и для любых идентификаторов Visual FoxPro, за исключением ограничения длины до 128 символов.

После создания в открытой базе данных таблицы можно добавить к каждому ее полю описание, чтобы облегчить понимание и упростить дальнейшую ее модификацию. Visual FoxPro показывает текст комментария при выборе поля в списке полей таблицы в Project Manager.

Для добавления комментария к полю таблицы базы данных в Конструкторе таблиц введите текст комментария в поле ввода Field Comment или используйте функцию DBSETPROP().

Например, можно пояснить, что содержится в поле key_model таблицы Model, введя в качестве комментария к полю текст "Уникальный ключ модели автомобиля": ?DBSETPROP('Model.key_model', 'FIELD', 'COMMENT', ;

'Уникальный ключ модели автомобиля')

Для каждого поля таблицы в базе данных может быть задан заголовок. Visual FoxPro выводит текст этого заголовка в качестве названия столбца для данного поля в окне Browse и в качестве заголовка по умолчанию для колонок объекта Grid формы.

www.books-shop.com

Для добавления заголовка поля таблицы базы данных в Конструкторе таблиц введите текст в поле Caption в разделе Field Properties или используйте функцию DBSETPROP().

Например, можно ввести текст "Наименование модели" как заголовок поля name_model в таблице Model :

?DBSETPROP('Model.name_model', 'FIELD', 'CAPTION',; 'Наименование модели')

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

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

Объем памяти, резервируемый Visual FoxPro для хранения значений поля (например, для каждого значения типа Currency используется 8 байтов).

Какого рода операции могут производиться над значениями данного поля. Например, Visual FoxPro может находить суммы значений выражений типов Numeric или Currency, но не сможет провести эту операцию с выражениями типов Character или General.

Сможет ли FoxPro выполнять индексирование или сортировку по значениям данного поля (невозможно выполнять сортировку или индексирование по полям примечаний или

General).

Для телефонных номеров, кодов изделий и других чисел, с которыми не предполагается выполнять математические вычисления, следует задавать тип данных Character, а не тип Numeric. Если вы используете поле для размещения уникального цифрового ключа, используйте тип данных Integer.

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

Как управлять использованием значений NULL для отдельных полей? В Конструкторе таблиц установите или снимите отметку со столбца Null для данного поля. Если столбец Null отмечен, то в поле могут вводиться значения NULL (см. рис. 6.2). В программе используйте предложения

NULL или NOT NULL в команде CREATE TABLE.

Например, следующая команда создает и открывает таблицу, в которой не допускаются значения NULL в поле key_body, а разрешаются значения NULL в поле name_body:

CREATE TABLE body (key_body i NOT NULL, name_body c(20); NULL)

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

Конструкторе таблиц, отметьте столбец Null для каждого поля таблицы или перед использованием команды CREATE TABLE выполните команду SET NULL ON.

После команды SET NULL ON Visual FoxPro автоматически отмечает столбец NULL для всех полей, создаваемых в Конструкторе таблиц. Если команда SET NULL задана до использования команды CREATE TABLE, то нет необходимости указывать предложения NULL или NOT NULL.

Например, следующий программный код создает таблицу, в которой допускаются значения NULL для всех полей:

SЕТ NULL ON

CREATE TABLE Fuel_oil (key_fuel_oil I, name_fuel_oil C(20))

Наличие значений NULL оказывает влияние на свойства таблиц и индексов. Например, если команда APPEND FROM используется для копирования записей из таблицы, где есть значения NULL, в таблицу, где они не допускаются, то значения NULL будут при копировании рассматриваться или как пустые строки, или как нули, или как пустые поля.

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

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

www.books-shop.com

Соседние файлы в папке лабы