
Создание таблицы
Теперь, когда создан каталог и зарегистрирован псевдоним, приступим непосредственно к созданию таблицы.
Таблицы создаются при помощи входящей в состав Delphi утилиты Database Desktop.
Утилита Database Desktop позволяет выполнять все необходимые при работе с базами данных действия. Она обеспечивает создание, просмотр и модификацию таблиц баз данных различных форматов (Paradox, dBASE, Microsoft Access). Кроме того, утилита позволяет выполнять выборку информации путем создания запросов.10
Запускается данная утилита из Windows выбором из меню Пуск Программы Borland Delphi 7 Database Desktop. Запустим её.
Затем в появившемся окне утилиты Database Desktop надо из меню File выбрать команду New и в появившемся списке выбрать тип создаваемого файла – Table (рис. 5). Затем в открывшемся диалоговом окне Create Table (рис. 6) следует выбрать тип создаваемой таблицы (значением по умолчанию является тип Paradox 711 – его мы и оставим, нажав кнопку ОК).
Рис. 5. Диалоговое окно Database Desktop
Рис. 6. Выбор типа таблицы
В результате открывается диалоговое окно Create Paradox 7 Table (рис. 7), в котором можно определить структуру записей таблицы.
Рис. 7. Диалоговое окно Create Paradox 7 Table
Сегодня мы создадим с вами однотабличную БД «Записная книжка», таблица которой будет содержать следующие поля:
Таблица 1. Поля записей базыданных «Записная книжка»
Каждая строка таблицы соответствует полю. Назначения столбцов:
Fields Name-имя поля;
Type – тип поля;
Size – размер поля (для строковых полей, поскольку иные поля подразумевают размер, определяемый типом поля);
Key – содержит звездочку «*», если поле входит в состав первичного ключа. Если в первичный ключ входит несколько полей, они должны определяться в той последовательности, в которой они присутствуют в первичном ключе. Кроме того, все поля, входящие в состав первичного индекса, должны определяться перед иными полями, то есть быть в списке полей наверху.
Рассмотрим возможные типы полей СУБД Paradox:
Тип поля |
Обозна-чение |
Размер |
Хранимые значения |
Alpha |
A |
1-255 |
Текстовое поле указанной длины. |
Number |
N |
|
Числа с плавающей запятой в диапазоне от -10307 до +10307 с 15 значащими десятичными разрядами. |
Money |
$ |
|
Денежное поле. Содержит вещественные числа с фиксированной запятой, 6 знаками целой части и 2 знаками дробной. |
Short |
S |
|
Целые числа в диапазоне от -32 768 до +32 767 |
Long Integer |
I |
|
Целые числа в диапазоне от -2 147 483 648 до +2 147 483 647. |
BCD |
# |
0-32 |
Двоично-десятичные вещественные числа. Size ‒ количество разрядов после запятой. |
Date |
D |
|
Дата в диапазоне от 1.01.0000 до 31.12.9999. |
Time |
T |
|
Время с точностью до миллисекунд. |
Timestamp |
@ |
|
Дата и время. |
Мемо |
M |
1-240 |
Мемо-поле для размещения произвольных текстовых строк неограниченной длины. Первые Size символов хранятся в основной таблице, остальные ‒ в файле с расширением .MB. |
Formatted Memo |
F |
0-240 |
Мемо-поле для размещения форматирован-ного текста в формате RTF. |
Graphic Fields |
G |
0-240 |
Графическое изображение в формате BMP. Size байтов этого поля хранится в основной таблице, остальные ‒ в отдельном файле. |
OLE |
O |
0-240 |
Объект OLE. |
Logical |
L |
|
Логическое поле. Содержит значение True или False. |
Autoincrement |
± |
|
Автоинкрементное поле. Значения доступны только для чтения. Обычно- ключевой поле в составе первичного ключа. При добавлении новой записи значение поля вычисляется автоматически таким образом, чтобы в одной и той же таблице не было одинаковых значений. Значение поля из удаленных записей повторно не используются. |
Binary |
B |
0-240 |
Набор байтов произвольной длины. Первые Size байтов хранятся в основной таблице, остальные ‒ в отдельном файле. |
Bytes |
Y |
1-255 |
Набор из Size байтов (целиком хранится в таблице). |
В диалоговом окно Create Paradox 7 Table создадим необходимые поля в соответствии с таблицей 1 (см. рис. 8).
Рис. 8. Создание полей таблицы
Для каждого поля определим требование обязательного заполнения поля значением. Для этого, переходя от поля к полю, включим переключатели Required Field. Другие поля служат для наложения ограничений на значение поля:
Minimum value определяет минимальное значение поля;
Maximum value определяет максимальное значение поля;
Default value определяет значение поля по умолчанию;
Picture определяет шаблон изображения поля. Для формирования шаблона следует нажать кнопку Assist.
Отсутствие значения в одном из полей означает отсутствие ограничений на значение поля.
Теперь нам необходимо сохранить нашу таблицу. Нажимаем кнопку Save As… в открывшемся диалоговом окне Save Table As в поле Имя файла пишем имя таблицы записная_книжка, в поле Тип файла всё оставляем без изменения, а в поле Alias из выпадающего списка выбираем псевдоним PR1, ставим галочку в пункте Display table и нажимаем кнопку Сохранить. (см. рис. 9).
Рис. 9. Окно сохранения таблицы
После того, как мы определим имя создаваемой таблицы AVTO, в каталоге C:\Proba (он назначен псевдониму Proba, используемому нами в качестве рабочего псевдонима) будет создан файл Avto.DB и файлы индексов с соответствующими расширениями
Если в структуру существующей таблицы БД необходимо внести изменения, следует выбрать элемент меню File|Open|Table, в появившемся диалоговом окне выбрать имя таблицы и нажать кнопку Ok. Будет показано содержимое таблицы.
Теперь мы можем
вносить в неё данные. Для этого щёлкните
по пиктограмме
и внесите в таблицу 5 записей (рис. 10).
Рис. 10. Записи таблицы БД «Записная книжка»
В том случае, если мы хотим ввести новые записи в таблицу прямо в DBD (а также изменить значения в некоторых записях или произвести удаление), следует нажать кнопку F9. После этого таблица будет переведена в режим внесения изменений.
Чтобы изменить структуру таблицы, выберите элемент меню Table|Restructure. Вслед за этим будет показано диалоговое окно для определения структуры таблицы.
Создадим индекс по полям «Год выпуска» и «Марка». Для этого в комбинированном списке Table Properties (в правом верхнем углу окна) выберем элемент Secondary Indexes. После этого диалоговое окно приобретет вид, показанный на рис.1.11.
Рис.1.11. В правой части окна появился элемент Secondary Indexes
Чтобы определить новый индекс, нажмем кнопку Define. В появившемся диалоговом окне в поле Fields содержится список полей определяемой нами таблицы. Поле Index Fields предназначено для хранения полей, входящих в создаваемый индекс. Чтобы скопировать конкретное поле из списка Fields в список Index Fields, нужно нажать кнопку с изображением правой стрелки. Последовательность добавления полей в список важна, она определяет порядок чередования полей в списке. После того как поместили нужные поля в список Index Fields. Нажмем кнопку Ok.
Рис.1.12. Определение полей, входящих в состав индекса
В появившемся окне запрашивается имя индекса. Следует ввести имя и нажать Ok.
Рис.1.13. Окно сохранение индекса
Не рекомендуется составлять название индекса только из имени полей, поскольку такой способ именования используется автоматически при создании ссылочной целостности между таблицами.
Как видно на рис.1.14, после добавления нового индекса его имя появилось в списке индексов.
Рис.1.14. Список индексов, определенных для таблицы AVTO
Впоследствии, щелкнув по имени индекса, мы можем его удалить (кнопка Erase) или изменить (кнопка Modify).
После того, как все записи внесены. Утилиту можно закрыть. Все изменения в таблице будут сохранены автоматически.