Udostępnij za pośrednictwem


CDatabase::OpenEx

Wywołać funkcję Członkowskie zainicjować nowo zbudowanych CDatabase obiektu.

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

Parametry

  • lpszConnectString
    Określa ciąg połączenia ODBC.Obejmuje to nazwa źródła danych, jak również inne informacje opcjonalne, takie jak identyfikator użytkownika i hasło.Na przykład "DSN = SQLServer_Source;UID = SA;PWD = abc123 "jest ciąg połączenia możliwe.Należy zauważyć, że jeśli przekaże NULL dla lpszConnectString, okno dialogowe źródło danych będzie monitował użytkownika o wybranie źródła danych.

  • dwOptions
    Maski, która określa kombinacją następujących wartości.Wartością domyślną jest 0, co oznacza, że baza danych zostanie otwarty jako udostępniony do zapisu, DLL Biblioteka kursorów ODBC nie zostanie załadowana i wyświetli okno dialogowe połączenie ODBC, tylko, jeśli nie ma wystarczających informacji do nawiązania połączenia.

    • CDatabase::openExclusive nie są obsługiwane w tej wersji biblioteki klas.Źródło danych jest zawsze otwarty udostępnione (nie wyłącznie).Obecnie potwierdzenia zawiedzie, jeżeli określono tę opcję.

    • CDatabase::openReadOnly Otwórz źródło danych jako tylko do odczytu.

    • CDatabase::useCursorLib załadować Biblioteka kursorów ODBC DLL.Biblioteka kursorów maski funkcjonalność sterownika ODBC podstawowej, skutecznego zapobiegania użycia zestawy dynamiczne (Jeśli sterownik obsługuje je).Tylko kursory obsługiwane, jeśli jest załadowana Biblioteka kursorów są statyczne migawki i kursory tylko do przodu.Jeśli planujesz utworzenie obiektu recordset bezpośrednio z CRecordset bez wynikających z niej, nie należy załadować biblioteki kursora.

    • CDatabase::noOdbcDialog nie wyświetlać okno dialogowe połączenie ODBC, niezależnie od tego, czy dostarczone za mało informacji o połączeniu.

    • CDatabase::forceOdbcDialog zawsze wyświetlić okno dialogowe połączenie ODBC.

Wartość zwracana

Niezerowa, jeśli pomyślnie połączenia; inaczej 0, jeśli użytkownik wybierze opcję Anuluj przedstawionej okno dialogowe z prośbą o więcej informacji o połączeniu.W innych przypadkach w ramach zgłasza wyjątek.

Uwagi

Obiekt bazy danych należy zainicjować przed użyciem do konstruowania obiektu recordset.

Jeśli lpszConnectString parametr w sieci OpenEx wywołania nie zawiera informacji wystarczających do nawiązania połączenia, sterownik ODBC otwiera okno dialogowe, w celu uzyskania niezbędnych informacji od użytkownika, pod warunkiem że nie ustawiono CDatabase::noOdbcDialog lub CDatabase::forceOdbcDialog w dwOptions parametru.Po wywołaniu OpenEx, ciąg połączenia, lpszConnectString, jest przechowywany przez osobę prywatną w CDatabase obiektu i jest dostępny przez wywołanie GetConnect funkcji składowej.

Jeśli chcesz, własne okno dialogowe można otworzyć przed wywołaniem OpenEx uzyskać informacji od użytkownika, na przykład hasła, a następnie dodać informacje ciąg połączenia są przekazywane do OpenEx.Lub chcesz zapisać ciąg połączenia przekazać tak może używać go następnego czasu wywołania aplikacji OpenEx na CDatabase obiektu.

Można również użyć ciągu połączenia, dla wielu poziomów autoryzacji logowania (dla różnych CDatabase obiektu) lub przekazywać innych informacji specyficznych dla źródła danych.Aby uzyskać więcej informacji na temat ciągów połączeń, zobacz rozdział 6 w ODBC Programmer's Reference.

Istnieje możliwość próby połączenia się limit czasu, jeśli na przykład DBMS host jest niedostępny.Jeśli próba połączenia nie powiedzie się, OpenEx wyrzuca CDBException.

Przykład

// 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);

Wymagania

Nagłówek: afxdb.h

Zobacz też

Informacje

Klasa CDatabase

Diagram hierarchii

CDatabase::Open

CDatabase::CDatabase

CDatabase::Close

Klasa CDBException

CRecordset::Open