Udostępnij za pośrednictwem


CDatabase::Open

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

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

Parametry

  • lpszDSN
    Określa nazwę źródła danych — nazwa zarejestrowana na ODBC za pomocą programu ODBC Administrator.Jeżeli określono wartość DSN w lpszConnect (w formie "DSN = < źródło danych >"), to nie może być określone ponownie w lpszDSN.W przypadku lpszDSN powinien być NULL.W przeciwnym razie można przekazać NULL chcesz zaprezentować źródła danych okno dialogowe, w którym użytkownik może wybrać źródło danych użytkownika.Aby uzyskać więcej informacji zobacz uwagi.

  • bExclusive
    Nie są obsługiwane w tej wersji biblioteki klas.Obecnie potwierdzenia nie powiedzie się, jeśli ten parametr jest TRUE.Źródło danych jest zawsze otwarty udostępnione (nie wyłącznie).

  • bReadOnly
    TRUE , jeśli zamierzasz połączenie tylko do odczytu i zakazać aktualizacji źródła danych.Wszystkie zależne zestawy rekordów dziedziczy ten atrybut.Wartością domyślną jest FALSE.

  • lpszConnect
    Określa ciąg połączenia.Ciąg połączenia łączy informacje, w tym ewentualnie nazwa źródła danych, identyfikator użytkownika ważne źródło danych, ciąg uwierzytelniania użytkownika (hasło, jeśli źródło danych wymaga jednego) i innych informacji.Ciąg połączenia całego muszą być poprzedzane ciągu "ODBC;" (wielkie lub małe litery)."ODBC;" ciąg jest używany do wskazują, że połączenie ze źródłem danych ODBC; jest to zgodność w górę podczas przyszłych wersji biblioteki klas może obsługiwać źródeł danych ODBC nie.

  • bUseCursorLib
    TRUE Jeśli ODBC kursor biblioteki DLL do załadowania.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.Wartością domyślną jest TRUE.Jeśli planujesz utworzenie obiektu recordset bezpośrednio z CRecordset bez wynikających z niej, nie należy załadować biblioteki kursora.

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.

[!UWAGA]

Wywołanie OpenEx Członkowskich funkcja jest preferowanym sposobem łączenia się ze źródłem danych i zainicjować obiektu bazy danych.

Jeśli parametry w sieci Otwórz 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.Po wywołaniu Otwórz, ciąg połączenia, lpszConnect, 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 Otwórz uzyskanie informacji od użytkownika, na przykład hasła, następnie dodać informacje do ciągu połączenia, przekazać do Otwórz.Lub chcesz zapisać ciąg połączenia przekazać tak może używać go następnego czasu wywołania aplikacji Otwórz 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ł 5 w Windows SDK.

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ę, Otwórz wyrzuca CDBException.

Przykład

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

Wymagania

Nagłówek: afxdb.h

Zobacz też

Informacje

Klasa CDatabase

Diagram hierarchii

CDatabase::OpenEx

CDatabase::CDatabase

CDatabase::Close

Klasa CDBException

CRecordset::Open