Шаг 129.
Среда программирования Visual C++.
Классы CDatabase и CDaoDatabase

    На этом шаге мы рассмотрим классы CDatabase и CDaoDatabase.

    Обычно класс CDatabase служит для установки соединения с ODBC-источником данных типа SQL Server, a CDaoDatabase - с локальным источником данных, например СУБД Access.

    Установка соединения проходит в два этапа:

    В CDatabase::Ореn() передается DSN или строка подключения, а в CDaoDatabase::Ореn() - только имя файла БД. Также в эти функции допустимо передать параметр, задающий режим доступа - исключительный или только для чтения.

    В случае ODBC применяйте функцию CDatabase::OpenEx(). Вот ее прототип:

  CDatabase::OpenEx (LPCTSTR lpszConnectString, DWORD dwOptions = 0);

    Параметр lpszConnectString - строка подключения с DSN. Если при установке соединения с источником не применяется авторизация Windows NT, то в строке подключения можно передать имя пользователя и пароль. Если значение lpszConnectString - NULL, то при попытке подключения система выведет диалоговое окно с запросом на ввод имени источника, имени пользователя и пароля.

    Второй параметр, dwOptions, представляет собой битовую маску, задающую режим открытия источника данных. Принятое по умолчанию значение 0 определяет, что источник будет открыт в разделяемом режиме с доступом для записи. В этом параметре можно комбинировать значения, перечисленные в таблице 1.

Таблица 1. Необязательные параметры функции-члена СDatabase::ОреnЕх
Параметр dwOptions Значение
CDatabase::openReadOnly Открывает источник данных только для чтения
CDatabase::useCursorLib Загружает библиотеку курсоров ODBC
CDatabase::noOdbcDialog Запрещает отображение диалогового окна подключения независимо от того, достаточно ли информации в строке подключения
CDatabase::forceOdbcDialog Всегда отображает диалоговое окно подключения

    Ниже показано, как ОреnЕх() вызывается для подключения к DSN pubs от имени учетной записи sa с паролем, заданным в переменной password.

  CDatabase db;
  db.OpenEx("DSN=pubs;UID=sa; PWD=password", 0);

    Класс CDaoDatabase учитывает некоторые особенности Microsoft Jet. Например, он позволяет связать с объектом класса CDaoDatabase набор объектов CDaoTableDef, которые являются объектами определения таблиц и применяются для создания и корректировки таблиц в файлах БД, совместимых с Microsoft Jet.

    Завершив работу с объектами базы данных, всегда закрывайте их функцией Close(). Соединение с источником данных - ценный системный ресурс, который не следует тратить зря.

    На следующем шаге мы рассмотрим классы CRecordSet и CDaoRecordSet.




Предыдущий шаг Содержание Следующий шаг