Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_ТехнолПрогр2010_090103.doc
Скачиваний:
22
Добавлен:
27.04.2019
Размер:
1.35 Mб
Скачать

12.2. Создание приложения с базой данных

Цель работы - создание приложения, выполняющего операции с базой данных: просмотр, добавление, удаление (лаб. работа labDb-[7,c.66]).

Для создания приложения выполнить следующие этапы:

- Установление доступа к базе данных. Этап заключается в регистрации заданной базы данных, как источника данных.

- Создание заготовки приложения. Этап выполняется автоматически с помощью мастера AppWizard при выполнении этапов настройки приложения с выбором технологии доступа к источнику данных ODBC или DAO.

- Реализация операций с базой данных. Этап выполняется с использованием классов MFC соответствующей технологии доступа к данным.

Воспользуемся файлом db.mdb, который представляет собой базу данных, созданную в СУБД Access. Файл содержит сведения о студентах: Name (Имя), Grade (Курс). Лучше создать собственный файл в любой программе для работы с базами данных.

Пусть экранная форма отображения содержимого базы данных будет выглядеть следующим образом (см. рис. 12.1).

Untitled – labDb

File Edit Record View Help

[ ] [ ] [ ] [ ] [|<] [<] [>] [>|]

Студенты:

Имя Ann

Группа B__

Рис. 12.1. Отображение содержимого базы данных

Контрольные вопросы

  1. Какие технологии доступа к данным имеет Visual C++?

  2. В чем отличие технологий ODBC и DAO?

  3. Как создать приложение, выполняющее операцию просмотра базы данных?

  4. Как создать приложение, выполняющее операции добавления и удаления записей?

Тема 13. Программирование для Internet

13.1. Технологии для работы в Internet

Visual C++ обладает технологиями, облегчающими разработку приложений для работы в Internet, значительно расширяющими возможности приложений.

К ним относятся Winsock (Windows Socket), MAPI (Messaging Application Programming Interface), WinInet (Windows Internet), ISAPI (Internet Server API), ActiveX для Web.

Программирование в технологии Winsock основано на следующих принципах. Каждый компьютер имеет числовой адрес – IP-адрес, а программы имеют собственный порт. Комбинация IP-адреса и номера порта называется socket (гнездо). Протокол TCP устанавливает дуплексную связь между программами с помощью гнезд. После установления соединения осуществляется передача и прием потока байтов.

В MFC имеются два класса Winsock: базовый класс CAsyncSocket и производный класс CSocket, реализующих асинхронное программирование Winsock, т.е. в каждый момент времени происходит множество событий. Классы облегчают работу с сокетами, так как обеспечивают вызов нужных функций API. Написание Winsock-программ достаточно трудоемкий процесс, требуется много рутинной работы, например, самостоятельное заполнение структуры адреса гнезда.

Технология Winsock может быть применена для написания клиент/серверных программ для Internet, но не использующих приложения типа электронной почты, Web, FTP и других популярных приложений Internet. Для этих приложений лучше использовать MAPI, WinInet, ISAPI, ActiveX для Web, предоставляющие программистам большие возможности.

Технология MAPI (Messaging API - почтовый интерфейс) – это средство разработки приложений, осуществляющих пересылку и прием сообщений для самой популярной информационной службы Internet - электронной почты.

Для использования MAPI достаточно на этапе 4 создания приложения с помощью AppWizard установить флажок на опции MAPI. В меню File создается новый пункт Send, при выборе которого запускается клиент MAPI для посылки сообщения, содержащего текущий документ. Остается только дописать адрес, тему сообщения и текст для документа. Существуют и более сложные интерфейсы MAPI: Extendet MAPI и OLE MessagingiveX.

Технология ISAPI (Internet Server API) применяется для расширения возможностей сервера HTTP, позволяя создавать расширения и фильтры. Расширения – это динамически загружаемые библиотеки (DLL), которые можно вызывать пользователем прямо с Web-страницы. Фильтры – это библиотеки DLL, работающие вместе с сервером и проверяющие данные, идущие к серверу и от него. Но для того, чтобы использовать расширения и фильтры, ISAPI и Web-страница должны находиться на совместном сервере.

Наиболее популярной технологией программирования для Internet является технология WinInet (Windows Internet). В библиотеке классов MFC Visual C++ имеются классы WinInet, облегчающие написание клиентских приложений и освобождающие от использования WinSock. Связь классов WinInet представлена на рис. 13.1.

Работа в Internet происходит в следующей последовательности: класс CInternetSession создает объект класса; затем, при наличии адреса ресурса URL устанавливается соединение с помощью функции OpenURL() по протоколу HTTP (HiperText Transfer Protocol), FTP (File Transfer Protocol) или Gopher (старый текстовый протокол, связи в котором устанавливает администратор); функция OpenUrl() возвращает указатель на файловый объект класса CStdioFile; затем происходит считывание содержимого файла с помощью функций класса CStdioFile.

CObject

C Exception CInternetSession

CInternetException CInternetConnection

C File CFtpConnection

CStdioFile CGopherConnection

CInternetFile CHttpConnection

CHttpFile CFileFind

CGopherFile CFtpFileFind

CGopherFileFind

CGopherLocation

Рис. 13.1. Связь классов WinInet

При отсутствии адреса URL сеанс работы с Internet происходит в следующей последовательности: с помощью функций GetHtttpConnection(), GetFtpConnection(), GetGopherConnection() класса CInternetSession определяется объект соединения и устанавливается соединение по указанному протоколу; затем, вызывается функция OpenFile() соответствующего объекта соединения, т.е. CHttpConnection::OpenFile() возвращает объект класса CHttpFile, CFtpConnection::OpenFile() возвращает объект класса CInternetFile, CGopherConnection::OpenFile() возвращает объект класса CGopherFile.

Классы CHttpConnection, CFtpConnection, CGopherConnection используют протоколы соответственно HTTP, FTP, Gopher и представляют собой постоянное соединение с хост-компьютером (обычно протоколы не поддерживают постоянное соединение). Классы CFileFind, CFtpFileFind, CGopherFileFind служат для просмотра соответствующих каталогов и поиска файлов.

Классы WinInet обычно предназначены для написания клиентских приложений, а для написания серверных приложений можно использовать технологию ISAPI (Internet Server API), расширяющую возможности сервера HTTP (World Wide Web).