Цель работы:
Database Desktop - это утилита, которая поставляется вместе с Delphi для интерактивной работы с таблицами различных форматов локальных баз данных - Paradox и dBase, а также SQL-серверных баз данных InterBase, Oracle, Informix, Sybase (с использованием SQL Links). Исполняемый файл утилиты называется DBD32.EXE. Для запуска Database Desktop просто дважды щелкните по ее иконке.
Запуск DatabaseDesktop:
1.1 В меню Delphi выбрать раздел Tools
2.2 В появившемся списке выбрать строку DatabaseDesktop
1.1 Из главного меню выбрать строку Программы
2.2 В появившемся списке выбрать строку Delphi 7
3.3 В следующем списке выбрать строку DatabaseDesktop
После запуска DatabaseDesktop на экране появится окно:
Создание таблиц в DatabaseDesktop:
Формат таблицы выбираем Paradox. После этого появится окно создания таблицы, в котором можно определить поля таблицы и их тип:
По умолчанию сразу после открытия окна в правой его части в списке Tableproperties выбран пункт ValidityChekcs, что позволяет контролировать содержимое полей. С помощью флажка RequiredFields можно потребовать обязательного заполнения поля при вводе новой записи. Также можно контролировать минимальное и максимальное значение числового поля в строках MinimumValue и MaximumValue. В строке DefaultValue можно указать значение поля по умолчанию – при вводе новой записи значение в это поле поместит BDE.С помощью строки Picture можно задать шаблон для автоматического форматирования значения поля. Например, если задан шаблон (###)###-#### и в поле введена строка 9054005647, она будет автоматически преобразована к виду (905)400-5647.
Кнопки предназначены для:
Borrow… – осуществляет копирование структуры таблицы из другой таблицы
Saveas… – сохраняет изменения в структуре таблицы
Cancel – выход без сохранения
Help – вызов справки
· Field Name - Имяполя.
· Type - Тип поля. Вызывает список допустимых типов, щелчком правой кнопки мыши или клавишей пробел.
· Size - Размер. Определяет размер поля. Не все типы полей имеют размер. Большинство типов имеют стандартный размер, который не может быть изменен. Размер в основном меняется у строковых типов (Alpha), бинарных (Binary) и др.
· Key - Ключ. Двойной щелчок мышью определяет ключевое поле. Ключевыми могут быть только первые поля, то есть второе поле сможет быть ключевым только вместе с первым.
Типы полей формата Paradox
Alpha | строка длиной 1-255 байт, содержащая любые печатаемые символы |
Number | числовое поле длиной 8 байт, значение которого может быть положительным и отрицательным. Диапазон чисел - от 10-308 до 10308 с 15 значащими цифрами |
$ (Money) | числовое поле, значение которого может быть положительным и отрицательным. По умолчанию, является форматированным для отображения десятичной точки и денежного знака |
Short | числовое поле длиной 2 байта, которое может содержать только целые числа в диапазоне от -32768 до 32767 |
Long Integer | числовое поле длиной 4 байта, которое может содержать целые числа в диапазоне от -2147483648 до 2147483648 |
# (BCD) | числовое поле, содержащее данные в формате BCD (Binary Coded Decimal). Скорость вычислений немного меньше, чем в других числовых форматах, однако точность - гораздо выше. Может иметь 0-32 цифр после десятичной точки |
Date | поле даты длиной 4 байта, которое может содержать дату от 1 января 9999 г. до нашей эры - до 31 декабря 9999 г. нашей эры. Корректно обрабатывает високосные года и имеет встроенный механизм проверки правильности даты |
Time | поле времени длиной 4 байта, содержит время в миллисекундах от полуночи и ограничено 24 часами |
@ (Timestamp) | обобщенное поле даты длиной 8 байт - содержит и дату и время |
Memo | поле для хранения символов, суммарная длина которых более 255 байт. Может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (1-240) - остальные символы сохраняются в отдельном файле с расширением .MB |
Formatted Memo | поле, аналогичное Memo, с добавлением возможности задавать шрифт текста. Также может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (0-240) - остальные символы сохраняются в отдельном файле с расширением .MB. Однако, Delphi в стандартной поставке не обладает возможностью работать с полями типа Formatted Memo |
Graphic | поле, содержащее графическую информацию. Может иметь любую длину. Смысл размера - такой же, как и в Formatted Memo. Database Desktop “умеет” создавать поля типа Graphic, однако наполнять их можно только в приложении |
OLE | поле, содержащее OLE-данные (Object Linking and Embedding) - образы, звук, видео, документы - которые для своей обработки вызывают создавшее их приложение. Может иметь любую длину. Смысл размера - такой же, как и в Formatted Memo. Database Desktop “умеет” создавать поля типа OLE, однако наполнять их можно только в приложении. Delphi “напрямую” не умеет работать с OLE-полями, но это легко обходится путем использования потоков |
Logical | поле длиной 1 байт, которое может содержать только два значения - T (true, истина) или F (false, ложь). Допускаются строчные и прописные буквы |
+ (Autoincrement) | поле длиной 4 байта, содержащее нередактируемое (read-only) значение типа long integer. Значение этого поля автоматически увеличивается (начиная с 1) с шагом 1 - это очень удобно для создания уникального идентификатора записи (физический номер записи не может служить ее идентификатором, поскольку в Парадоксе таковой отсутствует. В InterBase также отсутствуют физические номера записей, но отсутствует и поле Autoincrement. Его с успехом заменяет встроенная функция Gen_id, которую удобней всего применять в триггерах) |
Binary | поле, содержащее любую двоичную информацию. Может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (0-240) - остальные символы сохраняются в отдельном файле с расширением .MB. Это полнейший аналог поля BLOb в InterBase |
Bytes | строка цифр длиной 1-255 байт, содержащая любые данные |
Создадим таблицу с данными о студентах. Укажем такие данные, как: ФИО, дата рождения, на основании какого приказа студент принят в университет, номер зачетки, специальность, курс, стипендия. Во всех текстовых полях, необходимо указать размер.
Созданную таблицу сохраняем под названием Student.db и закрываем окно создания таблиц.
Иногда может понадобиться отредактировать уже созданную таблицу для того, чтобы добавить, изменить или удалить некоторые поля, изменить свойства таблицы.
Редактирование таблицы:
1. Определение вторичных индексов.
1.1. Открыть таблицу Student.db (File►Open►Table)
1.2. Из меню Tableвыбрать пункт Restructure. Откроется окно редактирования полей таблицы.
1.3. В выпадающем списке Table propertiesвыбрать Secondary Indexesи нажать кнопку Define. В окне DefineSecondary Index определяются вторичные индексы:
С помощью флажков группы Indexoptions можно определить следующие особенности индекса:
· Unique – индекс будет содержать уникальные значения;
· Maintained – индексные поля сортируются по возрастанию значений;
· Casesensitive – индекс чувствителен к регистру букв в текстовых полях;
· Descending – индексные поля сортируются по убыванию значения.
1.4. Выбрать «SFio» из списка Fields и нажать кнопку с изображенной стрелкой вправо. В списке Indexed fields(индексированные поля) появится «SFio». То же самое проделать с полями «SSpec» и «SKurs».
1.5. Закрытьокно“Define Secondary Index”
1.6. В появившемся окне ввести имя индекса IDFio и нажать "OK".
2. Теперь, так как на факультете всего две специальности, то можно переопределить тип поля «SSpec». Для работы будет гораздо удобнее, чтоб это поле было типа Logical.
2.1. Навести курсор на тип поля «SSpec» и написать тип поля «L».
3. Определим языковой драйвер. Это следует делать для правильного отображения русскоязычного текста.
3.1. Открыть окно редактирования полей таблицы Student.db.
3.2. В выпадающем списке Table propertiesвыбрать TableLanguage и нажать кнопку Modify.
3.3. В появившемся окне выбрать из списка PdoxANSICyrillic.
3.4. Сохранить таблицу.
4. Для логического типа значение по умолчанию зададим False.
· Открыть таблицу (File ► Open ► Table)
· Выбрать Table ► Editdata или нажать клавишу F9.