Поделиться через


CDatabase::Open

Эта функция-член вызывается для инициализации вновь созданный объект CDatabase.

virtual BOOL Open(
   LPCTSTR lpszDSN,
   BOOL bExclusive = FALSE,
   BOOL bReadOnly = FALSE,
   LPCTSTR lpszConnect = _T("ODBC;"),
   BOOL bUseCursorLib = TRUE 
);

Параметры

  • lpszDSN
    Определяет имя источника данных — имя зарегистрированной с ODBC с помощью программы " Администратор ODBC.Если значение указано в dsn lpszConnect (в форме "DSN=<data-source>"), то он должен указать в lpszDSN.В этом случае lpszDSN должно быть NULL.В противном случае можно передать NULL если необходимо представить пользователь с диалоговым окном, то источника данных, в котором пользователь может выбрать источник данных.Дополнительные сведения см. в разделе "Примечания".

  • bExclusive
    Не поддерживается в данной версии библиотеки классов.В настоящее время утверждение не выполняется, если этот параметр TRUE.Источник данных всегда открыт, как совместно использовано (не монопольный).

  • bReadOnly
    TRUE если планируется подключение, чтобы быть только для чтения и запрещать обновления источника данных.Любые зависимые наборы записей наследующие этот атрибут.Значение по умолчанию FALSE.

  • lpszConnect
    Указывает строку подключения.Строка подключения сцепляет сведения о возможностях источника данных, включая имя пользователя допустимым идентификатором источника данных, строку пользовательской проверки подлинности (пароль, если источник данных требует одного) и другие сведения.Вся строка подключения должна быть присоединена префикс ODBC строкой "; " (прописными буквами или lower-case)."ODBC; " строка используется для указания того, что подключение к источнику данных ODBC; это верхней совместимости, если будущие версии библиотеки классов могут поддерживать источники данных ODBC, не являющихся.

  • bUseCursorLib
    TRUE если требуется библиотека DLL библиотеку курсоров ODBC.Библиотека курсоров маскирует некоторую функциональность базового драйвера ODBC, фактически предотвращая использование динамических подмножеств данных (если драйвер поддерживает их).Поддерживаемые курсоры только если библиотека курсоров загружена, моментальные снимки и статические курсоры последовательного доступа.Значение по умолчанию TRUE.Если планируется создать объект набора записей непосредственно из CRecordset без наследования от него, то не нужно загрузить библиотеку курсоров.

Возвращаемое значение

Ненулевой если соединение успешно установлено; в противном случае – значение 0, если пользователь выбрал Отмена представленный диалоговое окно с запросом дополнительные сведения о соединении.Во всех остальных случаях границы вызывают исключение.

Заметки

Объект базы данных должны быть инициализированы, прежде чем можно будет его использовать для построения объекта набора записей.

ПримечаниеПримечание

Вызова функции-члена OpenEx предпочтительный способ подключения к источнику данных и инициализация объекта базы данных.

Если параметры в вызове Открыть не содержит достаточных сведений для установления соединения ODBC, драйвер открывает диалоговое окно для получения необходимых сведений от пользователя.При вызове Открыть, строку соединения, lpszConnect, хранится в объекте CDatabase закрыто и доступна, вызвав функцию-член GetConnect.

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

Также можно использовать строку подключения для нескольких уровней авторизации входа (каждого для другого объекта CDatabase ) или передавать другие сведения источник- конкретных данных.Дополнительные сведения о строках соединения см. в главе 5 документации Windows SDK.

Попытки соединения могут привести к истечению срока ожидания, если, например, узел СУБД, недоступны.Если попытка соединения завершается неудачно, то Открыть вызывает CDBException.

Пример

// m_dbCust is a CDatabase object embedded in a CDocument class

if (bDefault)
{
   // Connect the object to a data source (no password)
   // the ODBC connection dialog box will always remain hidden
   m_dbCust.Open(_T("MFC_ODBCTest"), FALSE, FALSE, _T("ODBC;UID=JOES"));
}
else
{
   // ...Or, query the user for all connection information
   m_dbCust.Open(NULL);
}

Требования

Header: afxdb.h

См. также

Ссылки

Класс CDatabase

Диаграмма иерархии

CDatabase::OpenEx

CDatabase::CDatabase

CDatabase::Close

Класс CDBException

CRecordset::Open