На этом шаге мы начнем рассматривать использование элемента ADO Data Control в приложении.
ADO Data Control - это графический элемент управления на базе ActiveX с кнопками навигации по записям.
Он предоставляет приложению удобный интерфейс для работы с базами данных и позволяет избежать дополнительного
кодирования. В ADO Data Control механизм ADO применяется для оперативного создания соединений
между поставщиками данных и связанными с данными элементами управления. Элементы управления, связанные с
данными, представляют собой ActiveX-элементы пользовательского интерфейса с двумя важными свойствами:
- наличием параметра DataSource, в котором можно задать идентификатор элемента ADO Data Control;
- способностью отображать данные, выбранные связанным с ним элементом ADO Data Control.
Когда элементы управления связаны с ADO Data Control, при просмотре записей все поля отображаются и
обновляются автоматически. Такое поведение реализовано в самих элементах и для этого не требуется ни одной
дополнительной строчки кода.
В Visual C++ есть несколько ActiveX-элементов для работы с данными, например
Microsoft DataGrid и Microsoft DataList. Кроме того, допустимо создавать собственные элементы
управления и использовать созданные сторонними организациями.
Сейчас создадим простое приложение на базе диалога, в котором ADO Data Control и DataGrid применяются
для отображения записей из таблицы авторов базы данных pubs. Кроме того, Вы научитесь задавать свойства
этих элементов управления из исходного кода Вашей программы.
- Создание приложения ViewDB.
- Создайте проект MFC AppWizard (.exe) для приложения ViewDB.
- В окне 1 мастера AppWizard выберите Dialog based и щелкните Finish.
Рис.1. Создание приложения на основе диалога (формы) - Подтвердите выбор, щелкнув ОК.
Приложение на базе диалога - это самый простой тип программы, которую можно сгенерировать средствами AppWizard;
в нем не поддерживается архитектура "документ/вид". Главным окном приложения является модальное диалоговое окно,
и при его закрытии программа прекращает работу.
AppWizard создает шаблон и класс диалога для главного окна. В приложении ViewDB это шаблон
IDD_VIEWDB_DIALOG и класс CViewDBDlg. Шаблон IDD_VIEWDB_DIALOG автоматически открывается в редакторе диалогов.
Элементы управления ADO Data Control и DataGrid Control no умолчанию устанавливаются вместе с
Visual C++. Однако, прежде чем поставить их в диалоговое окно приложения, Вы должны добавить их в
проект из галереи Components and Controls Gallery. Добавление ActiveX-элемента в проект позволяет:
- выбирать на панели инструментов Controls значок, соответствующий элементу управления, чтобы разместить
его в шаблоне диалога; - создавать классы C++, которые формируют оболочку для интерфейсов Automation, предоставленных элементами управления.
Средствами этих классов можно задавать и получать сведения о состоянии элементов управления, а также обращаться
к представляемым ими методам.
- Добавление ActiveX-элемента в проект.
- В подменю Add to Project меню Project выберите Components and Controls.
Рис.2. Выбор Components and Controls - В Components and Controls Gallery дважды щелкните узел Registered ActiveX Controls, чтобы
получить список всех зарегистрированных в системе ActiveX-элементов. - Щелкните Microsoft ADO Data Control, version 6.0 (OLE DB), a затем - Insert.
Рис.3. Вставка Microsoft ADO Data Control - Вставьте элемент, щелкнув ОК. Щелкните еще раз ОК, чтобы подтвердить создание классов для этого элемента.
- Точно так же добавьте второй элемент управления, указав в списке Microsoft DataGrid Control, Version 6.0 (OLE DB).
- Закройте Components and Controls Gallery, щелкнув Close.
Теперь на панели инструментов Controls Вы должны увидеть значки для ADO Data Control и DataGrid Control.
Рис.4. Добавленные элементы
Отредактируйте шаблон диалога ID_DVIEWDB_DIALOG в соответствии с рисунком 5.
Рис.5. Редактирование шаблона IDD_VIEWDB_DIALOG
- Редактирование шаблона IDD_VIEWDB_DIALOG.
- Удалите статический текст TODO: Place dialog controls here.
- Измените заголовок диалогового окна на View Database.
- Добавьте элемент ADO Data Control, как это показано на рисунке 5, и удалите его заголовок.
Идентификатор IDC_ADODC1 изменять не нужно. - Добавьте элемент DataGrid Control, как показано на рисунке 5, и озаглавьте его Authors.
Идентификатор IDC_DATAGRID1 изменять не надо. На вкладке Control окна
Properties для DataGrid Control сбросьте флажок AllowUpdate, чтобы элемент управления
был доступен только для чтения. - Добавьте статический текст Order by: и рядом с ним поместите список. Его высоты должно хватать для
размещения двух строк текста, как показано на рисунке 5. Присвойте ему идентификатор IDC_ORDERLIST. - Разместите кнопки ОК и Cancel, как показано на рисунке 5.
Текст этого приложения можно взять здесь (78,5 Кб).
На следующем шаге мы закончим создание приложения.