Condividi tramite


CDatabase::OpenEx

Chiamare la funzione membro per inizializzare un oggetto appena creata CDatabase.

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

Parametri

  • lpszConnectString
    Specifica una stringa di connessione ODBC.Include il nome origine dati e altre informazioni facoltative, ad esempio un ID utente e una password.Ad esempio, "DSN=SQLServer_Source; UID=SA; PWD=abc123" rappresenta una stringa di connessione possibile.Si noti che se si passa NULL per lpszConnectString, una finestra di dialogo di origine dati verrà richiesto all'utente di selezionare un'origine dati.

  • dwOptions
    Una maschera di bit che specifica la combinazione dei valori seguenti.Il valore predefinito è 0, pertanto il database verrà aperto come condiviso con accesso in scrittura, la DLL della libreria di cursori ODBC non verrà caricata e la finestra di dialogo di connessione ODBC viene visualizzato solo se non sono disponibili informazioni sufficienti per effettuare la connessione.

    • CDatabase::openExclusive di supporto in questa versione della libreria di classi.Un'origine dati è aperta sempre condiviso (non esclusivo).Attualmente, un'asserzione ha esito negativo se si specifica questa opzione.

    • CDatabase::openReadOnly apre l'origine dati come di sola lettura.

    • Caricamento diCDatabase::useCursorLib la DLL della libreria di cursori ODBC.La libreria di cursori nasconde alcune funzionalità del driver ODBC sottostante, efficacemente impedendo l'utilizzo dei dynaset se il driver li supporta.)Gli unici cursori supportati se la libreria di cursori viene caricata sono snapshot statici e quelli forward-only.Se si intende creare un oggetto recordset direttamente da CRecordset senza derivazione da, non è necessario caricare la libreria di cursori.

    • CDatabase::noOdbcDialog non viene visualizzata la finestra di dialogo di connessione ODBC, indipendentemente dal fatto che sufficienti informazioni di connessione è fornito.

    • Visualizzazione diCDatabase::forceOdbcDialog sempre la finestra di dialogo di connessione ODBC.

Valore restituito

Diverso da zero se la connessione viene eseguita correttamente, in caso contrario 0 se l'utente sceglie l'annullamento una volta verificato una finestra di dialogo di conferma più informazioni di connessione.In tutti gli altri casi, il framework genera un'eccezione.

Note

L'oggetto di database deve essere inizializzato prima di poter utilizzare per creare un oggetto recordset.

Se il parametro lpszConnectString nella chiamata OpenEx non contiene informazioni sufficienti per eseguire la connessione, il driver ODBC visualizzata una finestra di dialogo per ottenere le informazioni necessarie dall'utente, se non è stato impostato CDatabase::noOdbcDialog o CDatabase::forceOdbcDialog nel parametro dwOptions.Quando si chiama OpenEx, la stringa di connessione, lpszConnectString, viene archiviata in modo privato nell'oggetto CDatabase ed è disponibile chiamando la funzione membro GetConnect.

Se si desidera, è possibile aprire la finestra di dialogo prima di chiamare OpenEx per ottenere informazioni dall'utente, ad esempio la password quindi aggiungere le informazioni sulla stringa di connessione passata a OpenEx.Oppure è possibile salvare la stringa di connessione passata in modo che sia possibile riutilizzarlo la volta successiva che le chiamate OpenEx di applicazione su un oggetto CDatabase.

È inoltre possibile utilizzare la stringa di connessione per più livelli di autorizzazione di accesso (ognuna per un oggetto diverso CDatabase ) o trasferire altre informazioni di origine di dati specifiche.Per ulteriori informazioni sulle stringhe di connessione, vedere il capitolo 6 in ODBC.

È possibile che un tentativo di connessione è scaduto se, ad esempio, l'host DBMS non è disponibile.Se il tentativo di connessione non riesce, OpenEx generato CDBException.

Esempio

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

Requisiti

Header: afxdb.h

Vedere anche

Riferimenti

Classe CDatabase

Grafico della gerarchia

CDatabase::Open

CDatabase::CDatabase

CDatabase::Close

Classe di CDBException

CRecordset::Open