- •О. Б. Малков работа с базами данных в среде delphi Учебное пособие для студентов заочной формы обучения
- •Содержание
- •1. Реализация работы с базами данных в среде delphi
- •1.1. Базы данных и системы управления базами данных
- •1.2. Технология доступа к данным bde
- •1.3. Компоненты приложений, работающих с базами данных
- •2. Демонстрационная база данных
- •2.1. Логическая модель данных предметной области
- •2.2. Физическая модель данных предметной области
- •3. Создание базы данных
- •3.1. Создание псевдонима
- •3.2. Создание структуры таблиц базы данных
- •3.3. Свойства таблиц Paradox
- •3.4. Заполнение таблиц базы данных
- •4. МодулЬ данных
- •4.1. Создание модуля данных
- •4.2. Связывание наборов данных
- •4.3. Создание объектов-полей
- •4.4. Проектирование и анализ структуры базы данных
- •4.5. Создание объектов-столбцов
- •4.6. Реализация бизнес-правил
- •5. Создание приложения, работающего с базой данных
- •5.1. Выбор типа пользовательского интерфейса
- •5.2. Создание главной формы
- •5.3. Создание рабочих форм
- •5.4. Создание форм ввода новых данных
- •6. Создание запросов
- •6.1. Компонент Query
- •6.2. Создание sql-запросов
- •6.2.1. Простая выборка данных
- •6.2.2. Выборка из связанных таблиц
- •6.2.3. Сортировка записей
- •6.2.4. Сложные критерии отбора
- •6.2.5. Псевдонимы таблиц и комментарии
- •6.2.6. Агрегатные функции и группировка записей
- •6.2.7. Создание и удаление таблиц и индексов
- •6.2.8. Вставка, удаление и редактирование записей
- •Insert into Имя_таблицы (Список_полей
- •Values (Список_значений)
- •6.3. Построение запроса в демонстрационной базе данных
- •7. Создание отчетов
- •7.1. Основы технологии Rave Reports
- •7.2. Визуальная среда Rave Designer
- •7.3. Составляющие проекта отчета
- •7.3.1. Библиотека отчетов
- •7.3.2. Каталог глобальных страниц
- •7.3.3. Каталог объектов данных
- •7.4. Типы отчетов
- •7.4.1. Отчет с единственной таблицей или запросом
- •7.4.2. Отчет главный-детальный
- •7.4.3. Группирующий отчет
- •7.5. Пример создания отчетов в приложении Sale
- •7.6. Экспорт отчета в файл
- •8. Создание СправочнОй системЫ
- •8.1. Создание файла документа справочной информации
- •8.2. Создание проекта справочной системы
- •8.3. Доступ к справочной информации
- •9. Создание установочного диска
- •9.1. Программа InstallShield Express
- •9.2. Создание проекта инсталляционной программы
- •Библиографический список
4.1. Создание модуля данных
В приложении, работающем с демонстрационной БД, нам понадобятся шесть компонентов Table (по числу таблиц БД) и, соответственно, шесть компонентов DataSource, связанных с этими таблицами.
Создадим новый проект. Сохраним модуль главной формы (которую мы пока не изменяли) под именем fmMainUnit, а весь проект – под именем Sale. Добавим в проект модуль данных командой File > New > Data Module. В свойство Name модуля данных поместим значение DM и сохраним модуль в файле dmSaleUnit. Свяжем модуль с проектом командой Project > Add to Project и выберем только что созданный файл dmSaleUnit.
Теперь в модуле данных необходимо разместить компоненты, которые обеспечат доступ к таблицам БД. Дерево, описывающее логические связи между компонентами, можно просмотреть, выполнив команду View > Object TreeView.
Можно изменять положение объектов в этом дереве методом перетаскивания, а также добавлять к ним новые объекты.
С помощью правой кнопки мыши можно быстро получить доступ к основным свойствам каждого из элементов. Все они доступны также из контекстного меню объектов, расположенных в правой части окна.
Для связи таблиц с БД воспользуемся компонентом Database на вкладке BDE палитры компонентов: щелкнем на нем и затем – на имени модуля DM в окне дерева объектов. В окне инспектора объектов раскроем список свойства AliasName и выберем псевдоним Sale. В строке свойства DatabaseName укажем произвольное имя (например, ААА) так называемого локального псевдонима, который создает компонент Database.
Локальный псевдоним доступен только в той программе, в которой используется компонент Database. Этот компонент выполняет множество полезных функций, обеспечивающих связь программы с БД. Для файл-серверных систем только с его помощью можно реализовать транзакции – специальный механизм доступа к данным, повышающий их достоверность и непротиворечивость.
После определения псевдонима БД и создания локального псевдонима исчезнет красный знак вопроса слева от компонента в окне дерева объектов, что свидетельствует о готовности компонента к работе. Заменим заданное по умолчанию имя компонента Database1 на DB.
Перенесем в окно дерева объектов компонент Table (вкладка BDE) и «положим» его на псевдоним ААА. В окне инспектора объектов в свойстве DatabaseName нового компонента автоматически появится имя локального псевдонима ААА, однако слева от компонента в окне дерева объектов будет красный знак вопроса, означающий, что компонент Table еще не готов к работе.
Компонент Table является набором данных (НД). Он преимущественно используется в локальных и файл-серверных системах для доступа к данным из одной или нескольких таблиц БД.
Чтобы подготовить компонент к работе, необходимо определить имя таблицы: раскроем список свойства TableName и выберем в нем таблицу IZDELIE. Изменим его имя Table1, заданное по умолчанию, на имя связанной с ним таблицы: в строке свойства Name введем Izdelie. Чтобы к таблице можно было обращаться из программы, свойству Active надо присвоить значение True.
Т аким же образом надо добавить в модуль данных и наборы данных для остальных таблиц. Окно модуля данных примет вид, показанный на рис. 18.
Рис. 18. Добавление НД в модуль данных
Соответственно, в модуле данных надо подготовить шесть объектов DataSource, связать каждый из них со своим НД и дать им подходящие имена. Выделим компонент на вкладке Data Access палитры компонентов и затем щелкнем на компоненте Izdelie в окне дерева объектов, чтобы связать его с НД. Компонент может быть размещен и прямо в окне компонентов модуля данных. Тогда источник данных после размещения в модуле данных связывается с конкретным НД с помощью свойства DataSet. В процессе связывания источники данных будут перемещаться «вглубь» дерева, описывающего эти НД.
Заменим в строке свойства Name заданное по умолчанию имя DataSource1 на имя SourceIzd.
Т аким же образом подготовим остальные объекты. Вид модуля данных к этому моменту показан на рис. 19.
Рис. 19. Описание таблиц БД в качестве источников данных