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

NoteЗамечание

Если одно или более полей может хранить null-значения, максимальное число полей снижается с 255 до 254.

Приведенный ниже список описывает общие атрибуты, которые вы указываете при создании поля:

Кроме того, при работе по созданию полей вы можете выполнить перечисленные ниже задачи:

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

Соображения по выбору имен для полей

Для полей таблицы базы данных, Visual FoxPro хранит первые 10 символов имени поля в файле таблицы (.dbf), а длинные имена поля - в файле контейнера базы данных (.dbc). Правила для создания длинных имен полей теже самые, что и применяемые для создания любых идентификаторов Visual FoxPro, за исключением того, что имена полей таблицы базы данных могут содержать до 128 символов. Для получения более подробной информации смотрите описание Создание имен в Visual FoxPro.

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

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

 
Длинное имя Короткое имя

customer_contact_name

customer_c

customer_contact_address

customer_2

customer_contact_city

customer_3

...

...

customer_contact_fax

customer11

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

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

Соображения по выбору типа данных

Когда вы выбираете тип данных для поля, помните о следующих соображениях:

  • Типы значений, которые может хранить поле.

    Например, вы не можете хранить текст в численных полях.

  • Объем хранилища, который требуется полю для хранения значений.

    Например, любые значения с типом Currency используют 8 байт для хранения.

  • Типы операций, которые вы можете выполнять с данными в поле.

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

    NoteСовет

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

  • Способность индексировать или сортировать значения в полях.

    Например, вы не можете сортировать значения или создавать индекс для полей с типом Memo или General.

Для получения более подробной информации о типах данных Visual FoxPro смотрите Типы данных и полей Visual FoxPro. Для получения более подробной информации о выборе типов данных для полей смотрите описание задачи Как: выбирать типы данных.

Соображения по выбору для полей значений по умолчанию

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

NoteСовет

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

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

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

NoteЗамечание

Когда вы указываете значение по умолчанию, Visual FoxPro оценивает значение по умолчанию или выражение на корректный тип данных, при закрытии редактора структуры таблицы или при использовании команд SQL CREATE TABLE или ALTER TABLE. Если тип данных выражения не соответствует типу данных поля, Visual FoxPro сгенерирует ошибку. Выражения, которые представляют собой ваши собственные функции (UDF) или содержат их, не оцениваются; поэтому в таком случае ошибки не генерируются.

Visual FoxPro вычисляет значение по умолчанию или выражение при использовании команд APPEND, APPEND BLANK или SQL INSERT для присвоения значений полям. При присвоении значения полю с использованием команд APPEND FROM или SQL INSERT, Visual FoxPro применяет значения по умолчанию к любому полю, если для поля в команде не были явно указаны присваемые значения. Однако, эти две команды не замещают существующие значения значениями по умолчанию.

Кроме того, вы можете использовать значения по умолчанию для заполнения полей, которые не принимают null-значений. Когда вы добавляете новую запись, Visual FoxPro применяет значения по умолчанию, затем проверяет каждое поле в порядке, в каком вы их определили в структуре, на отсутствие данных. Это гарантирует, что поля, которые не принимают null-значения могут быть заполнены значениями по умолчанию до применения ограничения, что поле не может содержать null.

Если поля в вашей таблице допускают прием null-значений, вы можете использовать null-значение (.NULL.) в качестве значения по умолчанию. Вне зависимости установлен ли SET NULL в "on" или в "off", если вы используете (.NULL.) в качестве значения по умолчанию, Visual FoxPro вставит (.NULL.) в поля для всех команд, за исключением APPEND BLANK. Для получения более подробной информации смотрите описания команды  SET NULL и задачи Как: разрешить хранение Null-значения в полях.

Если вы не указали значения по умолчанию, то в поле будет вставлено пустое (blank) значение соответсвующее типу данных до тех пор, пока команда SET NULL будет установлена в ON. Это обеспечивает совместимость назад.

NoteЗамечание

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

Для получения более подробной информации об установке значений по умолчанию для полей смотритре описание задачи Как: создать значения по умолчанию для полей.

Смотрите также