Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
110
Добавлен:
15.06.2014
Размер:
10 Mб
Скачать

5.1.5.3 Типы данных вVisualFoxPro

Тип поля определяется типом хранимых в нем данных (табл. 5.3).

Таблица 5.3

Типы данных в Visual FoxPro

Тип

Наименование

Текстовый

Character, Character (binary)

Числовой

Integer, Numeric, Float, Double

Денежный

Currency (четыре знака после десятичной точки)

Даты

Date

Дата и время

Date Time

Логический

Logical (True (.T.,.t.,.Y.,.y.), False (.F.,.f.,.N.,.n.))

Текстовое поле

произвольной длины

Memo, Memo (binary)

Двоичное поле

произвольной длины

General

Массив

Array

Типы Character (binary) иMemo (binary)предназначены для случаев, если не требуется учитывать кодовую страницу отображаемых символов.

Поля БД типа Memo предназначены для хранения символьных строк произвольной длины. Значения типа Memo могут иметь произвольный размер, определяемый размером только жесткого диска компьютера, и хранятся в отдельном файле с расширением .FPT, имя которого совпадает с именем соответствующей таблицы. Каждая таблица имеет только один Memo-файл вне зависимости от того, сколько Memo-полей она имеет. В Memo-поля DBF-файлов заносятся лишь ссылки (указатели) на соответствующие символьные строки. Значение Memo-поля можно присвоить переменной символьного типа и далее работать с ней как с символьной константой. FPT-файл, созданный для какой-то таблицы, является неотъемлемой ее частью.

Поля БД типа General позволяют хранить двоичные данные, а именно изоб­ражения, звук и т. д. Поля типа General являются специальной разновидностью Memo-полей. Они хранятся в том же FPT-файле, что и все Memo-поля данной таблицы, однако используются они иначе, чем обычные Memo-поля.

Массив (Array) представляет собой совокупность элементов, имеющих общее имя. Массив объявляется командой DECLARE или DIMENSION, которая задает имя и длину массива в круглых скобках, например:

DECLARE mas1(4,6), mas2(10)

Здесь описаны два массива: двумерный массив с именем masl (размерность 4 на 6) и одномерный массив из 10 элементов.

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

Обращаются к элементу массива по имени массива с указанием индекса -номера этого элемента в массиве, например, mas(i).

5.1.5.4Создание индексов вVisualFoxPro

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

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

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

Индексы часто используют для создания первичных ключей.

Чтобы создать индекс, нужно:

  1. Выбрать таблицу и открыть для нее диалоговое окно конструктора таблиц Table Designer.

  2. Перейти на вкладку Index (рис. 5.10).

Рисунок 5.10 Вкладка Indexes диалогового окна конструктора таблиц

  1. Ввести имя индекса в поле Name.

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

  3. В поле Typeиз списка выбрать тип создаваемого индекса (табл. 5.4).

  4. Ввести индексное выражение: 1-й способ – непосредственный ввод в поле Expression; 2-й способ – щелкнуть кнопкой правее поля ввода и записать выражение в диалоговое окно построителя выраженийExpression Builder.

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

Таблица 5.4

Типы индексов

Тип

Описание

Regular

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

Unique

Хранятся только неповторяющиеся значения индексного выражения (для записей с одинаковыми значениями ключа будет храниться только одно такое значение и ссылка на первую из записей с одинаковым ключом). Таблица может иметь несколько уникальных индексов.

Candidate

Создается уникальный индекс, который не содержит полей с пустыми значениями. Это «кандидат» в первичные ключи и не является им только потому, что для таблицы допустим только один первичный ключ.

Primary

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

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

Рис.5.11 Пример результатов ввода записей в таблицу

Для сохранения введенных данных используется комбинация клавиш CTRL+W. Для выхода без сохранения - комбинация клавиш CTRL+Q.