Condividi tramite


CDatabase::Open

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

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

Parametri

  • lpszDSN
    Specifica un nome origine dati — nome registrato con ODBC con il programmaamministratore ODBC.Se il valore di nome è specificato in lpszConnect (nel formato "DSN=<data-source>"), non è necessario specificarlo nuovamente in lpszDSN.In questo caso, lpszDSN deve essere NULL.In caso contrario, è possibile passare NULL se si desidera presentare una finestra di dialogo di un'origine dati in cui l'utente può selezionare un'origine dati.Per ulteriori informazioni, vedere le note.

  • bExclusive
    Supportato in questa versione della libreria di classi.Attualmente, un'asserzione ha esito negativo se questo parametro è TRUE.L'origine dati è aperta sempre condiviso (non esclusivo).

  • bReadOnly
    TRUE se si desidera che la connessione sia di sola lettura e per impedire gli aggiornamenti all'origine dati.Tutti i recordset dipendenti ereditano questo attributo.Il valore predefinito è FALSE.

  • lpszConnect
    Specifica una stringa di connessione.La stringa di connessione concatena informazioni, probabilmente incluso un nome origine dati, un ID utente valido nell'origine dati, una stringa di autenticazione utente (password, se l'origine dati richiede uno) e altre informazioni.L'intera stringa di connessione deve essere preceduta dalla stringa "ODBC," maiuscola o minuscola)."ODBC," stringa viene utilizzata per indicare che è la connessione a un'origine dati ODBC, si tratta di compatibilità verso l'alto nelle versioni future della libreria di classi possono supportare le origini dati non ODBC.

  • bUseCursorLib
    TRUE se si desidera che la DLL della libreria di cursori ODBC da caricare.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.Il valore predefinito è TRUE.Se si intende creare un oggetto recordset direttamente da CRecordset senza derivazione da, non è necessario caricare la libreria di cursori.

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.

[!NOTA]

Chiamare la funzione membro OpenEx è il modo preferito per la connessione a un'origine dati e inizializzare l'oggetto di database.

Se i parametri nella chiamata Apri non contengono informazioni sufficienti per effettuare la connessione, il driver ODBC visualizzata una finestra di dialogo per ottenere le informazioni necessarie dall'utente.Quando si chiama Apri, la stringa di connessione, lpszConnect, 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 Apri per ottenere informazioni dall'utente, ad esempio la password, quindi aggiungere le informazioni sulla stringa di connessione passata a Apri.Oppure è possibile salvare la stringa di connessione passata in modo che sia possibile riutilizzarlo la volta successiva che le chiamate Apri 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 5 in Windows SDK.

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

Esempio

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

Requisiti

Header: afxdb.h

Vedere anche

Riferimenti

Classe CDatabase

Grafico della gerarchia

CDatabase::OpenEx

CDatabase::CDatabase

CDatabase::Close

Classe di CDBException

CRecordset::Open