CDatabase:: Open

Virtual BOOL Open ( LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = "ODBC;", BOOL bUseCursorLib = vera );
gettare ( CDBException, CMemoryException );

Valore restituito

Diverso da zero se la connessione viene effettuata con successo; in caso contrario 0 se l'utente sceglie Annulla quando ha presentato una finestra di dialogo per chiedere ulteriori informazioni sulla connessione. In tutti gli altri casi, il framework genera un'eccezione.

Parametri

lpszDSN

Specifica un nome origine dati — un nome registrato con ODBC tramite Amministratore ODBC. Se viene specificato un valore DSN in lpszConnect (nella forma "DSN = lt; origine dati >"), esso non deve essere specificato nuovamente in lpszDSN. In questo caso, lpszDSN deve essere NULL. In caso contrario, è possibile passare NULL se si desidera presentare all'utente con una finestra di dialogo origine dati in cui l'utente può selezionare un'origine dati. Per ulteriori informazioni, vedere la sezione Osservazioni.

bExclusive

Non supportato in questa versione della libreria di classi. Attualmente, un'asserzione non riesce se questo parametro è TRUE. L'origine dati è sempre aperta come condiviso (non esclusivi).

bReadOnly

TRUE se si intende la connessione di sola lettura e di vietare gli aggiornamenti dell'origine dati. Tutti i dipendenti recordset ereditano questo attributo. Il valore predefinito è FALSE.

lpszConnect

Specifica una stringa di connessione. Stringa di connessione concatena informazioni, che può includere un nome di origine di dati, un ID utente valido sull'origine dei dati, una stringa di autenticazione utente (password, se l'origine dati richiede uno) e altre informazioni. L'intera stringa di connessione deve essere preceduto dalla stringa "ODBC;" (maiuscole o minuscole). "ODBC;" stringa viene utilizzata per indicare che la connessione a un'origine dati ODBC; Questo è per la compatibilità verso l'alto quando le versioni future della biblioteca classe potrebbero supportare le origini dati non ODBC.

bUseCursorLib

TRUE se si desidera che il cursore ODBC libreria DLL da caricare. La libreria di cursori maschera alcune funzionalità del driver ODBC sottostante, prevenire efficacemente l'uso di dynaset (se il driver supporta li). I cursori soli supportati se la libreria di cursori viene caricata sono gli snapshot statici e cursori forward-only. Il valore predefinito è TRUE. Se si intende creare un oggetto recordset direttamente da CRecordset senza derivanti da esso, non si dovrebbe caricare la libreria di cursori.

Osservazioni

Chiamare questa funzione membro per inizializzare un oggetto CDatabase appena costruito. Oggetto del database deve essere inizializzata prima di poter utilizzare per costruire un oggetto recordset.

&Notanbsp;  Chiamando la funzione membro OpenEx è il modo migliore per connettersi a un'origine dati e inizializzare l'oggetto di database.

Se i parametri nel vostro invito aperto non contengono informazioni sufficienti per effettuare la connessione, il driver ODBC si apre una finestra di dialogo per ottenere le informazioni necessarie da parte dell'utente. Quando si chiama Open, la stringa di connessione, lpszConnect, privatamente memorizzata nell'oggetto CDatabase ed è disponibile chiamando la funzione membro GetConnect.

Se lo si desidera, è possibile aprire il proprio dialogo prima è chiamare aprire per ottenere informazioni da parte dell'utente, ad esempio una password, quindi aggiungere che le informazioni alla stringa di connessione che si passa ad aprire. È possibile salvare la stringa di connessione che si passa così è possibile riutilizzare la prossima volta che l'applicazione chiama Open su un oggetto CDatabase.

È inoltre possibile utilizzare la stringa di connessione per più livelli di autorizzazione di accesso (ciascuno per un oggetto CDatabase differente) o di trasmettere altre informazioni specifiche dell'origine dati. Per ulteriori informazioni sulle stringhe di connessione, vedere il capitolo 5 in ODBC SDK Programmer di riferimento.

Se, ad esempio, l'host DBMS è disponibile è possibile per un tentativo di connessione a time out. Se il tentativo di connessione non riesce, Open genera un CDBException.

Esempio

/ / Incorporare un oggetto CDatabase
/ / nel documento di classe
CDatabase m_dbCust;

/ / Collegare l'oggetto di un
/ / dati fonte (senza password)
/ / la connessione ODBC di dialogo
/ / rimarrà sempre nascosti
m_dbCust.Open ( t ("MYDATASOURCE"), FALSE,
 nbsp;             FALSO,  T ("ODBC;UID = JOES "),

// ...Oppure, eseguire una query dell'utente per tutti
/ / informazioni di connessione
m_dbCust.Open (&NULL)

Pa&noramica di CDatabase |nbsp; Membri della classe | Gerarchia Chart

Vedere a&nchenbsp;CDatabase::OpenEx, CDatabase::CDatabase, CDatabase::Close, CDBException, CRecordset:: Open

Index