Лабораторные работы по базам данных в Delphi
Лабораторная работа, 13 Декабря 2010, автор: пользователь скрыл имя
Описание работы
Цель работы:
1.Ознакомить с утилитой Database Desktop.
2.Усвоить процесс создания и редактирования таблиц с помощью Database Desktop.
Database Desktop - это утилита, которая поставляется вместе с Delphi для интерактивной работы с таблицами различных форматов локальных баз данных - Paradox и dBase, а также SQL-серверных баз данных InterBase, Oracle, Informix, Sybase (с использованием SQL Links). Исполняемый файл утилиты называется DBD32.EXE. Для запуска Database Desktop просто дважды щелкните по ее иконке.
Файлы: 1 файл
Лабораторные работы по базам данных.doc
— 1.41 Мб (Скачать файл)Лабораторные работы по базам данных в Delphi
Лабораторная работа № 1
Цель работы:
- Ознакомить с утилитой Database Desktop.
- Усвоить процесс создания и редактирования таблиц с помощью Database Desktop.
Database Desktop - это утилита, которая поставляется вместе с Delphi для интерактивной работы с таблицами различных форматов локальных баз данных - Paradox и dBase, а также SQL-серверных баз данных InterBase, Oracle, Informix, Sybase (с использованием SQL Links). Исполняемый файл утилиты называется DBD32.EXE. Для запуска Database Desktop просто дважды щелкните по ее иконке.
Запуск Database Desktop:
- Запустить Delphi
- В меню Delphi выбрать раздел Tools
- В появившемся списке выбрать строку Database Desktop
- Щелкнуть по кнопке Пуск
- Из главного меню выбрать строку Программы
- В появившемся списке выбрать строку Delphi 7
- В следующем списке выбрать строку Database Desktop
После запуска Database Desktop на экране появится окно:
Создание таблиц в Database Desktop:
- Запускаем программу Database Desktop;
- В появившемся окне выбираем: File►New►Table.
Формат таблицы выбираем Paradox. После этого появится окно создания таблицы, в котором можно определить поля таблицы и их тип:
По умолчанию сразу после открытия окна в правой его части в списке Table properties выбран пункт Validity Chekcs, что позволяет контролировать содержимое полей. С помощью флажка Required Fields можно потребовать обязательного заполнения поля при вводе новой записи. Также можно контролировать минимальное и максимальное значение числового поля в строках Minimum Value и Maximum Value. В строке Default Value можно указать значение поля по умолчанию – при вводе новой записи значение в это поле поместит BDE.С помощью строки Picture можно задать шаблон для автоматического форматирования значения поля. Например, если задан шаблон (###)###-#### и в поле введена строка 9054005647, она будет автоматически преобразована к виду (905)400-5647.
Кнопки предназначены для:
Borrow… – осуществляет копирование структуры таблицы из другой таблицы
Save as… – сохраняет изменения в структуре таблицы
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 и закрываем окно создания таблиц.
Иногда может понадобиться отредактировать уже созданную таблицу для того, чтобы добавить, изменить или удалить некоторые поля, изменить свойства таблицы.
Редактирование таблицы:
- Определение вторичных индексов.
- Открыть таблицу Student.db (File►Open►Table)
- Из меню Table выбрать пункт Restructure. Откроется окно редактирования полей таблицы.
- В выпадающем списке Table properties выбрать Secondary Indexes и нажать кнопку Define. В окне Define Secondary Index определяются вторичные индексы:
С помощью флажков группы Index options можно определить следующие особенности индекса:
- Unique – индекс будет содержать уникальные значения;
- Maintained – индексные поля сортируются по возрастанию значений;
- Case sensitive – индекс чувствителен к регистру букв в текстовых полях;
- Descending – индексные поля сортируются по убыванию значения.
- Выбрать «SFio» из списка Fields и нажать кнопку с изображенной стрелкой вправо. В списке Indexed fields (индексированные поля) появится «SFio». То же самое проделать с полями «SSpec» и «SKurs».
- Закрыть окно “Define Secondary Index”
- В появившемся окне ввести имя индекса IDFio и нажать "OK".
- Теперь, так как на факультете всего две специальности, то можно переопределить тип поля «SSpec». Для работы будет гораздо удобнее, чтоб это поле было типа Logical.
- Навести курсор на тип поля «SSpec» и написать тип поля «L».
- Определим языковой драйвер. Это следует делать для правильного отображения русскоязычного текста.
- Открыть окно редактирования полей таблицы Student.db.
- В выпадающем списке Table properties выбрать Table Language и нажать кнопку Modify.
- В появившемся окне выбрать из списка Pdox ANSI Cyrillic.
- Сохранить таблицу.
- Для логического типа значение по умолчанию зададим False.
Заполнение данными в таблице Student.db:
- Открыть таблицу (File ► Open ► Table)
- Выбрать Table ► Edit data или нажать клавишу F9.
- Создать несколько записей.
Создание псевдонима:
Псевдоним
указывает местонахождение
Регистрация псевдонима:
- Воспользуемся приложением SQL Explorer, запускаемым командой Database►Explore. В левой части окна приводится список всех зарегистрированных в системе BDE баз данных, в правой – свойства текущей базы, выбранной в списке.
- Создадим псевдоним для базы данных. Для этого выполним команду Object►New и в диалоговом окне выбора драйвера укажем значение Standart.
- После щелчка на кнопке ОК в списке появится новый элемент, помеченный зеленым треугольником.
- По умолчанию формируется имя базы данных Standard1, изменим его на Student.
- Убедимся, что в свойствах Default Driver (Драйвер по умолчанию) стоит значение Paradox. В свойстве Path укажем каталог, в котором хранится наши таблица.
- Теперь зарегистрированную в системе BDE базу сохраним, выбрав для этого Apply в контекстном меню объекта Student.
- На вопрос о необходимости сохранения изменений нажать Yes. Теперь таблица доступны из среды BDE под именем Student.
- Закройте Sql Explorer.
Лабораторная работа № 2
Цель работы:
- Изучить начальные этапы создания приложения для работы с базами данных в среде Delphi:
- ознакомить с компонентами доступа к БД: TTable, TDataSource;
- ознакомить с компонентами управления БД: TDBGrid, TDBNavigator.
- Усвоить ввод и редактирование текста.
Методика
создания приложения для работы с
базой данных ничем не отличается
от методики создания обычной программы:
к форме добавляются
Приложение работы с базой данных должно содержать компоненты, обеспечивающие доступ к данным, возможность просмотра и редактирования содержимого полей. Компоненты доступа к данным находятся на вкладке Data Access и BDE палитры компонентов, а компоненты отображения данных — на вкладке Data Controls.
Основные компоненты доступа и управления к базам данных:
Компоненты доступа к базам данных:
TTable - обеспечивает взаимодействие с таблицей БД, т.е. компонент TTable указывает, откуда брать данные и какие поля будут составлять набор данных. Компонент TTable имеет следующие основные свойства:
- DatabaseName – база данных
- TableName - имя таблицы
- Active – активация таблицы (значение True активирует ее)
Свойство DatabaseName определяет базу данных, в которой находится таблица. Это свойство может содержать:
- псевдоним (псевдоним)
- путь для локальных БД
- путь и имя файла базы данных для Local InterBase
- локальный псевдоним, определенный через компонент TDatabase.
Свойство TableName определяет имя таблицы базы данных.
TDataSource - определяет связь между базой данных и компонентами управления данными, то есть компонент TDataSource является промежуточным звеном между компонентом Table1, соединенным с реальной БД и визуальными компонентами DBGrid1 и DBNavigator1, с помощью которых пользователь взаимодействует с таблицей.
В большинстве случаев, все, что нужно сделать с DataSource - это указать в свойстве DataSet соответствующий TTable. Затем, у визуального компонента вроде DBGrid или DBNavigator в свойстве DataSource указывается TDataSource, который используется в настоящее время.