Visual FoxPro 9.0 позволяет создавать как таблицы, входящие в базу
данных, так и свободные таблицы. Это дань истории развития продукта - черта,
свойственная только ему. Так уж сложилось со времен появления Visual FoxPro 3.0. Воспользуемся ей.
Будет применять таблицы обоих типов. Свободная
(вне базы данных) таблица User даст возможность отрегулировать
вопрос о правах доступа к приложению (рис. 3.2), а все остальные, размещенные в
контейнере Real Estate, будут представлять реляционную базу данных.
Существует несколько способов создания таблиц
в Microsoft Visual FoxPro.
1.
С помощью мастера
таблиц.
2.
С использованием
конструктора таблиц.
3.
Путем импорта
данных из внешнего файла в текущую базу данных.
4.
Создание таблиц в
текущей базе данных, связанных с таблицами внешнего файла.
Первый
способ – для новичков в работе с базами данных, испытывающих сильное желание
немедленно создать свою первую таблицу. Процесс создания таблицы с помощью
мастера включает в себя несколько этапов. Вам будет предложено несколько
десятков образцов таблиц делового и личного применения. Выбирайте нужные детали
и проектируйте свою таблицу! Два последних применяются, как правило, в
процессе доработки уже готового и запущенного в эксплуатацию программного комплекса.
Если же вы заняты
разработкой нового приложения – забудьте про все способы, кроме второго.
Конструктор таблиц – вот то, что вам необходимо в этом случае!
Воспользовавшись главным
меню Visual Fox Pro или окном менеджера панели задач
откройте базу данных Real Estate, созданную в пункте 3.1.
Появится окно конструктора базы данных (рис. 3.3). Дальше три пути на ваш
выбор. Все они приведут к цели. Такое оформление характерно для многих
продуктов корпорации Microsoft. Это пересекающиеся каскады.
Каскад первый. Щелкните по первой иконке панели инструментов
конструктора базы данных. Под ней вы найдете подсказку New Table. Появится окно New table,
позволяющее выбрать запуск мастера таблиц или конструктора таблиц. Щелкните в
нем по кнопке New table. Произойдет запуск конструктора таблицы (рис. 3.6).
Рис. 3.4. Всплывающее меню конструктора базы данных.
Каскад второй. Щелкните
правой кнопкой мыши в любом месте окна конструктора базы данных. Появится
всплывающее меню (рис. 3.4). Выберите в нем пункт New table. Появится окно с заголовком New table,
позволяющее выбрать запуск мастера таблиц или конструктора таблиц. Щелкните в
нем по кнопке New table. Произойдет запуск конструктора таблицы (рис. 3.6).
Каскад третий. В главном
меню Visual FoxPro выберите пункт Database. Появится всплывающее подменю (рис. 3.5). Выберите в
нем пункт New table. Появится окно New table, позволяющее
выбрать запуск мастера таблиц или конструктора таблиц. Щелкните в нем по кнопке
New table. Произойдет запуск конструктора таблицы (рис. 3.6).
Во всех трех случаях увидим окно конструктора таблицы. Это форма с
тремя вкладками: Fiels, Indexes и Table.
· Fields (Поля) – поля создаваемой таблицы и условия
достоверности вводимых данных на уровне поля;
· Indexes (Индексы) – индексы создаваемой таблицы;
· Table (Таблица) – условия достоверности вводимых данных на уровне
записи, а также триггеров добавления, удаления и модификации.
Первая вкладка (рис. 3.6) используется при определении полей таблицы.
Она предназначена для ввода названия полей, типа данных и ширины поля. При
занесении числовых полей задается количество десятичных знаков. Кроме основных
параметров для каждого поля на этой вкладке задаются дополнительные параметры,
которые помогут вам при сопровождении программного комплекса. Обратите особое
внимание на ячейку Field comment. Не оставляйте ее пустой! Опишите подробно
назначение поля таблицы. Позже обязательно поймете важность этого совета.
Рис. 3.5.
Работа в главном меню Visual FoxPro
9.0 с базой данных.
Имена полей должны содержать не более 255
символов и могут включать любые комбинации символов за исключением точки,
восклицательного знака и квадратных скобок. Используйте в именах полей только
латинские буквы при общей длине имени до 10 символов включительно. В этом
случае у Вас не будет проблем с конвертацией таблиц Microsoft
Visual FoxPro в
таблицы других СУБД (например, Microsoft SQL Server).
Каждое поле таблицы должно иметь уникальное
имя, но в различных таблицах можно использовать одинаковые имена полей. В табл.
3.1 приведены основные типы данных полей Microsoft
Visual FoxPro 9.0.
Типы данных
полей таблиц Microsoft Visual FoxPro 9.0
Вид данных |
Тип данных |
Описание |
Текстовый |
Character |
Текст или числа, не требующие проведения расчетов.
Максимальная длина – 255 символов. По умолчанию длина текстового поля устанавливается
равной 10 символов. |
Character (binary) |
Аналогичен Character.
Используется в том случае, если не требуется учитывать кодовую страницу. |
|
Varchar |
Аналогичен Character. Для этого типа не происходит заполнение
свободных мест незначащей информацией. |
|
Varbinary |
Шестнадцатеричные значения |
|
Дата и время |
Datetime |
Любая дата от 01.01.0001 до 31.12.9999 и время от 00.00.00
a.m. до
11.59.59 p.m. |
Дата |
Date |
Любая дата от 01.01.0001 до 31.12.9999 |
Денежный |
Currency |
Позволяет выполнять расчеты с
точностью до 15 знаков в целой и до 4 знаков в дробной части |
Логический |
Logical |
Содержит значение True
(.T.) или False (.F.) Истина или ложь. |
Числовой |
Integer |
Целые числа от -2147483647 до 2147483648 |
Integer (AutoInc) |
Счетчик. Уникальные, последовательно возрастающие числа,
автоматически вводящиеся в таблицу при добавлении каждой новой записи. |
|
Numeric |
Десятичные данные с фиксированной точкой. |
|
Float |
Десятичные данные с плавающей точкой простой точности. |
|
Double |
Десятичные данные с плавающей точкой высокой точности. |
|
Двоичное поле произвольной длины |
General |
Включает рисунок, фотографию, звукозапись, диаграммы,
векторную графику, форматированный текст и т.п. |
Текстовое поле произвольной длины |
Мемо |
Поля типа МЕМО предназначены для хранения больших текстовых
данных. Длина поля может достигать 64 Кб. Поле не может быть ключевым или
индексированным |
Двоичный |
Blob |
Двоичные символы |
В правой части первой
вкладки Fields конструктора таблицы (рис. 3.6) также расположены
ячейки, позволяющие задать для каждого поля создаваемой таблицы свойства,
которые будут задействованы при вводе данных.
Format
(Формат) – задает формат отображения данных в окне Browse, отчетах и формах.
Input mask (Маска
ввода) – задает шаблон для ввода данных.
Caption
(Заголовок) – определяет заголовок поля.
Rule
(Условие) – проверка правильности ввода данных на уровне поля создаваемой
таблицы.
Message
(Сообщение) – текст сообщения, которое появится на экране дисплея при
неправильном вводе данных в поле.
Default value (Значение по умолчанию) – значение, вводимое в поле по умолчанию.
Display library (Показать библиотеку) – определяет имя файла библиотеки классов.
Display class
(Показать класс) – определяет имя класса из выбранной библиотеки классов.
Next Value
(Начальное значение) – задает начальное значение счетчика. Доступно только для
поля IntegerInc.
Step
(Шаг) – приращение счетчика. Доступно только для поля IntegerInc.
Создадим нашу первую
таблицу Building. Ее окончательная структура взята из табл. 2.7.
Имейте в виду, что имя поля и его описание вводится с клавиатуры, а тип данных
выбирается из списка.
Рассмотрим
действия по созданию таблицы подробнее (рис. 3.6).
Рис. 3.6.
Таблица Building в конструкторе таблиц (первая вкладка).
1. Введите в первую колонку имя первого поля: Street и нажмите клавишу <Tab>. Курсор переместится во вторую колонку Type. По умолчанию будет назначен тип Character длиной 10 символов.
2.
Раскройте
список типов данных при помощи мыши. Выберите тип Numeric и нажмите клавишу <Tab>.
3.
Заполните
колонки Width
(Число знаков) и Decimal (Число знаков после десятичной
точки). Для ссылки на номер улицы используем четыре десятичных знака. Это дает
возможность работать с 9999 улицами, что вполне достаточно для города с
миллионным населением. Кстати, в Хабаровске 1248 улиц, переулков, проездов,
шоссе, кварталов, площадей, бульваров и т.д.
4.
Обязательно
заполните ячейку Field comment. Не ленитесь, пишите подробнее!
5.
Повторите
шаги 1–4 для всех оставшихся полей таблицы.
Остальные поля первой вкладки
конструктора таблиц на этом этапе можно не заполнять. После занесения данных
обо всех полях таблицы просто закройте окно конструктора таблиц. Появится
диалоговое окно «Сохранение», запрашивающее подтверждение на
сохранение структуры таблицы (рис. 3.7).
Щелкните по кнопке «Yes». Наша первая таблица появится в окне базы данных, а
в папке DBF –
два файла: Building.dbf (сама таблица) и Building.fpt
(поле Memo). Заполнять сейчас созданную таблицу начинающему
пользователю категорически не рекомендуется, да так и не делается! Посмотрите
на содержимое таблицы 3.2. Это не отдельная таблица, она будет связана с
другими таблицами базы данных Real Estate.
Что в ней хранится – пока загадка. Уверен, что большинство цифр Вам просто
непонятны.
Таблица 3.2
Информация, содержащаяся в
связанной таблице
Street |
House |
Flat |
Storey |
Rooms
|
Square |
Dwell |
Branch |
Account |
14 |
102 |
1 |
1 |
3 |
60,8 |
40 |
20 |
3450 |
14 |
102 |
2 |
1 |
4 |
100 |
70 |
28 |
1000 |
14 |
102 |
3 |
1 |
4 |
78 |
60 |
16 |
4321 |
14 |
102 |
4 |
2 |
4 |
90 |
80 |
5 |
666 |
14 |
102 |
5 |
2 |
3 |
100 |
95 |
30 |
778 |
14 |
102 |
6 |
10 |
1 |
200 |
190 |
8 |
9787 |
14 |
102 |
7 |
10 |
7 |
170 |
150 |
10 |
879 |
179 |
104 |
1 |
1 |
1 |
30 |
20 |
9 |
23210 |
179 |
104 |
2 |
1 |
2 |
42 |
30 |
11 |
3267 |
179 |
104 |
3 |
1 |
1 |
27 |
20 |
6 |
6666 |
179 |
104 |
4 |
2 |
4 |
100 |
90 |
5 |
4587 |
Аналогичным образом создадим все наши таблицы,
разработанные в главе 2: Flat, Owners, Account,
Street, District
и Wall.