Sdílet prostřednictvím


CDatabase::OpenEx

Volání funkce tohoto člena inicializovat nově vyrobeny CDatabase objektu.

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

Parametry

  • lpszConnectString
    Určuje spojovací řetězec ODBC.To zahrnuje název zdroje dat, jakož i další volitelné informace, například ID uživatele a heslo.Například "DSN = SQLServer_Source;UID = SA;PWD = abc123 "je možné připojovací řetězec.Všimněte si, že předáte NULL pro lpszConnectString , dialogové okno zdroje dat vyzve uživatele k výběru zdroje dat.

  • dwOptions
    Bitová maska, která určuje kombinace následujících hodnot.Výchozí hodnota je 0, což znamená, že databáze bude otevřena jako sdílený přístup pro zápis, nebude načtena knihovna DLL ODBC kurzor a zobrazí dialogové okno připojení ODBC, pouze pokud není dostatek informací k připojení.

    • CDatabase::openExclusive není podporována v této verzi knihovny tříd.Zdroj dat je vždy otevřít sdílené (nikoli výhradní).V současné době nepravdivých selže, pokud tuto možnost.

    • CDatabase::openReadOnly otevřít zdroj dat jen pro čtení.

    • CDatabase::useCursorLib ODBC kurzor knihovnu DLL.Knihovna kurzorů masky některé funkce základní ovladač ODBC účinně brání použití dynamické sady (Pokud je ovladač podporuje).Pouze kurzory podporovány, pokud je načtena Knihovna kurzorů jsou statické snímky a pouze pro předávání ukazatelů.Pokud chcete vytvořit objekt recordset přímo z CRecordset bez z ní vyplývající, neměla načtení knihovny kurzoru.

    • CDatabase::noOdbcDialog nezobrazovat ODBC dialogovém okně připojení, bez ohledu na to, zda je zadán dostatek informací o připojení.

    • CDatabase::forceOdbcDialog vždy zobrazit dialogové okno připojení ODBC.

Vrácená hodnota

Nenulová hodnota, pokud je připojení vytvořeno úspěšně; 0, pokud uživatel jinak zrušit, když zobrazí dialogové okno s žádostí o další informace o připojení.Ve všech ostatních případech rámci vyvolá výjimku.

Poznámky

Databázový objekt musí být inicializován před použitím k vytvoření objektu recordset.

Pokud lpszConnectString parametr ve vaší OpenEx volání neobsahuje dostatek informací k připojení, ovladač ODBC otevře dialogové okno získat potřebné informace od uživatele, pokud jste nenastavili CDatabase::noOdbcDialog nebo CDatabase::forceOdbcDialog v dwOptions parametr.Při volání OpenEx , připojovací řetězec lpszConnectString , je uložena v soukromě CDatabase objektu a je k dispozici voláním GetConnect členské funkce.

Pokud chcete, můžete otevřít dialogové okno Vlastní než zavoláte OpenEx k získání informací od uživatele, například hesla a přidejte tyto informace předat do připojovacího řetězce OpenEx .Nebo chcete uložit řetězec připojení předáte, takže jej můžete znovu použít na další čas volání aplikace OpenEx na CDatabase objektu.

Také můžete řetězec připojení více úrovní ověření přihlášení (každý pro jiné CDatabase objektu) nebo vyjádřit jiné informace specifické pro zdroj dat.Další informace o řetězcích připojení naleznete v kapitole 6 ODBC Programmer's Reference.

Je možné, časový limit pokusu o připojení, pokud například není k dispozici hostitelský systém DBMS.Pokud se pokus o připojení nezdaří, OpenEx vyvolá CDBException .

Příklad

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

Požadavky

Záhlaví: afxdb.h

Viz také

Referenční dokumentace

Třída CDatabase

Graf hierarchie

CDatabase::Open

CDatabase::CDatabase

CDatabase::Close

Třída CDBException

CRecordset::Open