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


CDatabase::OpenEx

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

virtual BOOL OpenEx( 
   LPCTSTR lpszConnectString, 
   DWORD dwOptions = 0  
);

Параметры

  • lpszConnectString
    Определяет строку соединения ODBC.Сюда входит имя источника данных, а также другие дополнительные сведения, например, идентификатор пользователя и пароль.Например, "DSN=SQLServer_Source; UID=SA; PWD=abc123" допустимую строку подключения.Обратите внимание, что при передаче NULL для lpszConnectString, то диалоговое окно " источник данных запрашивает у пользователя выбрать источник данных.

  • dwOptions
    Битовая маска, определяющая сочетанием следующих значений.Не будет загружено значение по умолчанию 0, означать, что база данных будет открыта как совместно использовано с доступом на запись в библиотеке DLL библиотеки курсоров ODBC, а диалоговое окно соединения ODBC отобразит лишь в том случае, если не является достаточной информации для установления соединения.

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

    • Открытый CDatabase::openReadOnly источник данных только для чтения.

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

    • CDatabase::noOdbcDialog не отображает диалоговое окно соединения ODBC, независимо от того, указан ли достаточно сведений о соединении.

    • CDatabase::forceOdbcDialog отображение всегда диалоговое окно соединения ODBC.

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

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

Заметки

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

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

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

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

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

Пример

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

// Connect the object to a read-only data source where
// the ODBC connection dialog box will always remain hidden
m_dbCust.OpenEx(_T("DSN=MFC_ODBCTest;UID=JOES"),
   CDatabase::openReadOnly | CDatabase::noOdbcDialog);

Требования

Header: afxdb.h

См. также

Ссылки

Класс CDatabase

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

CDatabase::Open

CDatabase::CDatabase

CDatabase::Close

Класс CDBException

CRecordset::Open