32. Доступ к базам данных в vs. Классы odbc.
Без сомнения, базы данных являются наиболее популярными компьютерными приложениями. Они находят применение фактически в любом виде коммерческой деятельности, начиная от создания списков покупателей и заканчивая платежными ведомостями компании.
Современные версии Visual C++ включают классы, базирующиеся на механизмах ODBC (Open Database Connectivity — открытая связь с базами данных) и DAO (Data Access Objects— объекты доступа к данным).
Основные понятия теории баз данных
Однофайловая модель базы данных:
В простейшем представлении база данных является набором записей. Каждая запись в базе данных состоит из полей, а в каждом поле содержится информация, связанная с этой конкретной записью. В такой базе данных каждому клиенту соответствует одна запись. Она состоит из шести полей: ИМЯ, УЛИЦА, ДОМ, ГОРОД, ИНДЕКС (почтовый индекс) и ТЕЛЕФОН (номер телефона) (пример одной записи). Вся БД будет состоять из большого кол-ва подобных записей. Данный тип СУБД исп-т однофайловую модель базы данных (flat database model). Однако в случае больших баз данных, одноф-я модель может привести к дублир-ю инф-и и нерацион-му исп-ю памяти.
Реляционная модель базы данных:
Реляционная (от relation — отнош-е, связь) БД подобна неск-м связ-м одноф-м БД. При работе с реляционной БД можно не только выполнять поиск отдельн. записей, как это дел-ся в одноф-й БД, но и устанавл-ть связь одного набора записей с другим. Это позволяет организовать гораздо более эф-ное хранение данных. Каждый набор записей в реляц. БД наз-ся таблицей (table). Связи устан-ся с исп-м ключей (key), т.е. полей, значения которых хар-ют запись. (Напр, идентификационный код служащего мог бы быть ключом для таблицы служащих.)
Доступ к базе данных
Доступ к данным в реляц-х СУБД осущ-ся с исп-м опред-го командн. языка. Чаще всего для доступа к БД исп-ся язык SQL, который прим-ся при работе не только с СУБД для настольных комп-в, но и с громадными БД, исп-ми в банках, учебных завед-х, промышл-х корпорациях и других учр-х, в кот-х необх-мо решать сложнейшие задачи обр-ки инф-ции. Используя язык, подобный SQL, можно извлекать данные, представл-е полями записей из одной или неск-х таблиц, кот-е объед-ны в реляц. БД.
Классы ODBC Visual C++
Создавая с помощью мастера Visual C++ AppWizard прог-му, работ-ю с БД, вы получаете в итоге прилож-е, широко использ-е различные классы ODBC из состава библиотеки MFC. Наиболее важными из этих классов являются CDatabase, CRecordset и CRecordView.
Мастер AppWizard автомат-ки генерирует текст прог-мы, необх-й для coздания объекта класса CDatabase. Этот объект обесп-т связь м/у созд-м прилож-м и источником данных, с которым оно работает. В большинстве случаев использование класса CDatabase в прог-х, сгенерир-х AppWizard, прозрачно для программиста. Вся необх-я обр-ка обеспеч-ся самой сист-й упр-я.
Кроме того, AppWizard генерирует текст программы создания объекта класса CRecordset, используемого в приложении. Объект класса CRecordset представляет собой реальные данные, выбранные в настоящий момент из источника данных, а его методы обеспечивают выполнение операций с этими данными. В дальнейшем данные, выбранные программой в текущий момент, будем называть выборкой данных.
И наконец, объект класса CRecordView в БД-программе занимает место объекта класса представления, с которым постоянно приходится иметь дело в приложениях, созданных с помощью мастера AppWizard. Окно, создаваемое объектом класса CRecordView, подобно диалоговому окну, выполн-му роль средства общения пользователя с приложением. Это диалоговое окно обеспечивает в приложении связь с объектом класса CRecordset, осуществляя обмен инф-й между программой, элементами управления окна и выборкой данных. Когда с помощью мастера AppWizard создается новое БД-приложение, на программиста возлагается обязанность поместить в окно объекта CRecordView элементы управления, способные выполнять ввод и редактирование данных. Как правило, это текстовые поля. Такие элементы управления следует связать с полями записей базы данных, которые они представляют, для того, чтобы приложение направляло данные, выбранные для просмотра, куда следует.
Создание БД-программы на основе классов ODBC:
Создать с помощью Visual C++ простую БД-программу, использующую классы ODBC, совсем несложно — для этого нужно выполнить всего несколько операций.
1. Зарегистрировать базу данных в системе.
2.Исп-я мастер AppWizard, создать заготовку БД-приложения.
3.Добавить в заготовку приложения программный код, реализующий функции, которые AppWizard автоматически не формирует.
- 1.Стандартный внешний вид окна приложения Windows.
- 1. Рамка
- 3. Интерфейс Visual Studio. Ресурсы приложения.
- 4. Интерфейс Visual Studio. Окно вывода Output.
- Окно редактирования текстов программ
- 5. Система меню. Меню File, Edit, View.
- Advanced… вывод на экран еще одного меню.
- 6. Система меню. Меню Insert, Project.
- 7. Система меню. Меню Build, Tools. Меню Build
- 8. Мастер создания приложения. Шаг 1,2.
- 9. Мастер создания приложения. Шаг 3,4.
- 10. Мастер создания приложения. Шаг 5,6,7.
- 11. Диалоговые окна и элементы управления
- 12. Формирование нового ресурса диалогового окна.
- 13. Задание идентификаторов диалогового окна.
- 14. Организация вывода диалогового окна на экран.
- 15.Использование элемента управления типа список
- Некоторые методы класса cListBox
- 16. Комбинированные списки (класс cCombobox).
- 17. Использование элементов типа переключатель Статические поля (класс static). Окна редактирования Edit Box. Методы класса cEdit.
- 19. Обработка сообщений. Карты сообщений.
- Некоторые макросы карты сообщений
- 20.Реал-ция обр-ки сообщ-й с пом.ClassWizard. Виды сообщ-й.
- Вкладки диалогового окна ClassWizard.
- Какой класс должен перехватывать сообщение
- Список сообщений
- 21. Команды. Реал-ция обр-ки команд с помощью ClassWizard
- Обновление команд.
- 22. Архитектура «Документ/представление».
- 23. Вывод на экран. Контекст устройства. Классы контекстов устройства в mfc.
- 24.Классы изобразительных средств. Примеры рисования простейших фигур.
- Рисование простейших фигур (пример)
- Изменение размеров и положения окна
- 25. Использование перьев. Работа с кистью.
- Работа с кистью
- 26. Концепция сохран.-восстановл. Объектов. Необходимые действия по сохр.-востан. Объектов класса cDocument. Разбор примера с сериализацией в классе документа.
- Создание класса, обеспечивающего сериализацию данных
- 27. Создание класса, обеспечивающего сохран.-восстан. Объектов. Разбор примера с сериализацией cMessage. Создание класса, обеспечивающего сериализацию данных
- 28. Непосредственное чтение и запись файлов. Класс сFile. Методы сFile. Режимы доступа к файлу.
- 29. Использование на примере основных методов класса cFile (открыть, записать, считать из файла). Использование стандартн. Диалог. Панелей для открытия и записи в файл.
- 30.Панель инструментов и строка состояния. Создание панели инструментов. Добавление и удаление пиктограмм.
- 31.Разработка ф-ций обработки сообщений, связ-х с пиктограммой на панели инструм-в. Класс панели инстр-в.
- 32. Доступ к базам данных в vs. Классы odbc.
- 34. Регистрация бд. Создание заготовки приложения.
- 35.Создание экранной формы для отображ-я содерж-го бд.
- 36.Добавление и удаление записей.
- 37. Сортировка и фильтрация записей.
- 3)Атрибуты данных
- 4) Операции
- 43.Класс cRecordset. Компоненты данных и осн.Методы (открытие набора, получ-е атрибутов результ. Набора IsOpen, IsBof, IsEof, IsDeleted, обновл-е результ. Набора)
- 1)Компоненты данных
- 2)Конструирование
- 44.Класс cRecordset. Компоненты данных и осн.Методы (операции перемещения пo результир-му набору, операции IsFieldDirty, IsFieldNull, Requary, SetFieldDirty, SetFieldNull).
- 1)Компоненты данных
- 45. Класс cRecordset. Переопределяемые методы (DoFieldExchange, GetDefoltSql, GetDefoltConnect).
- 46.Класс cRecordView.
- 1)Создание объекта
- 2)Атрибуты данных
- 47. Основные технологии com. Автоматизация. Перманентность. Моникеры.
- 48. Единообразная передача данных и объекты с подключением.
- 49. Технология ado. Объектная модель, наборы ado.
- 50. Применение ado Data Control и DataGrid Control.
- 2.2. Методические указания
- 51. Удаление, добавление и редактирование записей в технологии ado
- 52.Настройка Эл-тов упр-ния ado Data Control и DataGrid Control из кода приложения
- 53. Возможности AppWizard по созданию приложений, поддерживающих технологию ActiveX.
- 54.Библиотеки динамической компоновки dll
- 55.Создание и использование 32-битовых динамически связываемых библиотек
- 56. Создание рабочего потока. Управление приоритетами потоков
- 57. Синхронизация потоков. Объекты синхронизации и классы mfc.
- Объекты синхронизации и классы mfc.
- 58.Отладка программ в vs. Точка останова. Установка точек останова. Команды и окна отладки.
- Терминология отладки
- Команды и окна отладки
- Команды меню
- Установка точек останова
- Другие окна для отладки
- Окно Memory
- Применение утилиты mfc Tracer
- 59. Отладка программ в vs. Анализ значений переменных. Окно CallStact.