Создание приложения ODBC

Реферат - Компьютеры, программирование

Другие рефераты по предмету Компьютеры, программирование

орая действительно нужна пользователю.

  • Table (Таблица). Предыдущие две опции работают на уровне записей, при использовании же табличного подхода (доступен только для модели DАО и нами использоваться не будет) результат выполнения запроса помещается во временную таблицу. Это не только сокращает объем информации, загружаемой с сервера, но и означает, что вы, как программист, сразу можете непосредственно манипулировать полями и записями временной таблицы. Каковы затраты при таком режиме работы? Если невнимательно подойти к формированию запроса, то процесс загрузки с сервера может оказаться более длительным, чем при использовании набора записей. Кроме того, можно не увидеть никаких изменений, сделанных другими пользователями, а они не смогут увидеть изменения, сделанные вами.
  • Для нашего примера установите переключатель Snapshot и нажмите кнопку ОК. После регистрации соединения с базой данных вы увидите блок диалога Select Database Tables. Выберите таблицы базы данных, где необходимо выделить те таблицы или запросы (queries), которые требуется включить в набор записей. В нашем простейшем случае это пока одна таблица, например jobs.

     

    После нажатия на кнопку ОК вы вернетесь к диалоговому окну MFC AppWizard Step 2 of 6, где, правда, изменилась надпись под кнопкой Data Source..., которая теперь сообщает о выбранных таблицах. На данном этапе конфигурирование приложения для использования базы данных pubs завершается. Три следующие окна мастера для нас неинтересны, поэтому просто четыре раза нажмите кнопку Next. В результате на экране появится диалоговое окно MFC AppWizard Step 6 of 6, аналогичное показанному на рис. 5. В отображенном списке выделите элемент CDBView, чтобы обратить внимание на его базовый класс CRecordView, с которым мы подробно познакомимся чуть ниже. Нажмите кнопку Finish, и Visual C++ отобразит диалоговое окно New Project Information.

     

     

    Рис. 5 Диалоговое окно MFC AppWizard Step 6 of 6

     

    Рис. 6 Приложение, созданное мастером AppWizard, не предоставляет пользователюникакой информации о содержимом базы данных

     

     

    1. Извлечение информации из базы данных.

     

    Подготовка формы для отображения данных.

    В нашем примере мы должны научиться манипулировать данными одной единственной таблицы jobs БД pubs. Используемые нами столбцы этой таблицы перечислены в таблице 1.

    Таблица 1. Используемые столбцы таблицы jobs.

     

     

    Нужно создать форму для отображения информации о должностях (см. Рис. 7).

     

    Рис. 7

     

     

     

     

     

    Примечание:

    Если вы хотите, использовать русские названия для полей (столбцов) таблицы, то перед тем, как набирать эти названия, необходимо изменить основной язык для окна диалога. Щелкните правой кнопкой мыши на идентификаторе окна диалога IDD_PRIM_FORM (на рис. 1 он обведен рамкой) и в появившемся контекстном меню выберите команду Properties (Свойства), в результате чего на экране появится диалоговое окно Dialog Properties (Свойства диалога) (рис. 8). В комбинированном списке Language (Язык) выберите Russian. в двух местах Dialog

     

    Рис. 8

     

     

    Если теперь скомпилировать и запустить приложение, то на экране появится окно, отображающее форму с пустыми полями. Однако, несмотря на то, что мы присвоили всем элементам управления формы соответствующие идентификаторы и знаем, что в таблице базы данных есть информация, она не отображается в окне.

     

    Придадим окну формы более привлекательный вид. Необходимо немного модифицировать функцию: CMainFrame::PreCreateWindow

    ClassView>CMainFraim>PreCreateWindow(CREATESTRUCT& cs).

     

     

    Вот как она должна выглядеть:

     

    BOOL CMainFrame::PreCreateWindowfCREATESTRUCTS cs)

    {

    // Изменяем размеры главного окна

    cs.cx = 376;

    cs.cy = 272;

    return CFrameWnd::PreCreateWindow(cs);

    }

    Примечание:

    Ваши значения могут отличаться от приведенных здесь значений (поскольку они зависят от размеров окна диалога). (В данном случае они равны 242x106, и в качестве шрифта установлен MS Sans Serif, 8.). Подберите значения, улучшающие вид вашей формы. В результате этих минимальных добавлений внешний вид окна формы улучшился.

     

    После усовершенствования внешнего вида формы переходим непосредственно к работе с базой данных.

    1. Отображение и обновление содержимого базы данных.

     

    Для того чтобы отобразить данные из таблицы базы данных, необходимо выполнить определенные действия. Для получения информации из таблицы базы данных требуется:

    1. создать соединение с источником данных;
    2. создать объект, куда будут записываться данные из базы данных;
    3. сформировать и выполнить запрос;
    4. отобразить полученные результаты в предварительно созданной форме.

    Мы пока ничего из этого не сделали (правда, очень многое за нас выполнила библиотека MFC). Запустите приложение, обратив внимание на то, что на панели инструментов кнопки перемещения на следующую и последнюю записи доступны, а на предыдущую и первую нет. Попробуйте понажимать на них. Как видите, они реагируют на нажатия, хотя в полях ничего и не отражается. О чем это говорит? О том, что библиотека MFC сама реализовала три первых этапа процесса получения информации, воспользовавшись для этого теми параметрами, которые мы указали при создании проекта.

     

    Убедитесь в этом, просмотрев соответствующий код в вашем проекте.

     

    ********Class CPrimSet *******

     

     

    C