Condividi tramite


Classe CDataSource

Corrisponde a un oggetto origine dati OLE DB, che rappresenta una connessione tramite un provider a un'origine dati.

Sintassi

class CDataSource

Requisiti

Intestazione: atldbcli.h

Membri

Metodi

Nome Descrizione
Chiudi Chiude la connessione.
GetInitializationString Recupera la stringa di inizializzazione dell'origine dati attualmente aperta.
GetProperties Ottiene i valori delle proprietà attualmente impostate per l'origine dati connessa.
GetProperty Ottiene il valore di una singola proprietà attualmente impostata per l'origine dati connessa.
Si apra Crea una connessione a un provider (origine dati) usando un CLSIDmoniker , ProgIDo CEnumerator fornito dal chiamante.
OpenFromFileName Apre un'origine dati da un file specificato dal nome file fornito dall'utente.
OpenFromInitializationString Apre l'origine dati specificata da una stringa di inizializzazione.
OpenWithPromptFileName Consente all'utente di selezionare un file di collegamento dati creato in precedenza per aprire l'origine dati corrispondente.
OpenWithServiceComponents Apre un oggetto origine dati utilizzando la finestra di dialogo Collegamento dati.

Osservazioni:

È possibile creare una o più sessioni di database per una singola connessione. Queste sessioni sono rappresentate da CSession. È necessario chiamare CDataSource::Open per aprire la connessione prima di creare una sessione con CSession::Open.

Per un esempio di come usare CDataSource, vedere l'esempio CatDB .

CDataSource::Close

Chiude la connessione rilasciando il m_spInit puntatore.

Sintassi

void Close() throw();

CDataSource::GetInitializationString

Recupera la stringa di inizializzazione di un'origine dati attualmente aperta.

Sintassi

HRESULT GetInitializationString(BSTR* pInitializationString,
   bool bIncludePassword = false) throw();

Parametri

pInitializationString
[out] Puntatore alla stringa di inizializzazione.

bIncludePassword
[in] true se la stringa include una password; in caso contrario false, .

Valore restituito

HRESULT standard.

Osservazioni:

La stringa di inizializzazione risultante può essere usata per riaprire successivamente questa connessione all'origine dati.

CDataSource::GetProperties

Restituisce le informazioni sulla proprietà richieste per l'oggetto origine dati connessa.

Sintassi

HRESULT GetProperties(ULONG ulPropIDSets,
   constDBPROPIDSET* pPropIDSet,
   ULONG* pulPropertySets,
   DBPROPSET** ppPropsets) const throw();

Parametri

Vedere IDBProperties::GetProperties nella Guida di riferimento per programmatori OLE DB in Windows SDK.

Valore restituito

HRESULT standard.

Osservazioni:

Per ottenere una singola proprietà, usare GetProperty.

CDataSource::GetProperty

Restituisce il valore di una proprietà specificata per l'oggetto origine dati connessa.

Sintassi

HRESULT GetProperty(const GUID& guid,
   DBPROPID propid,
   VARIANT* pVariant) const throw();

Parametri

guid
[in] GUID che identifica il set di proprietà per il quale restituire la proprietà.

propid
[in] ID proprietà per la proprietà da restituire.

pVariant
[out] Puntatore alla variante in cui GetProperty restituisce il valore della proprietà.

Valore restituito

HRESULT standard.

Osservazioni:

Per ottenere più proprietà, usare GetProperties.

CDataSource::Open

Apre una connessione a un'origine dati usando un CLSIDmoniker , ProgIDo o CEnumerator oppure richiede all'utente una finestra di dialogo localizzatore.

Sintassi

HRESULT Open(const CLSID& clsid,
   DBPROPSET* pPropSet = NULL,
   ULONG nPropertySets = 1) throw();

HRESULT Open(const CLSID& clsid,
   LPCTSTR pName,
   LPCTSTR pUserName = NULL,
   LPCTSTR pPassword = NULL,
   long nInitMode = 0) throw();HRESULT Open(LPCTSTR szProgID,
   DBPROPSET* pPropSet = NULL,
   ULONG nPropertySets = 1) throw();HRESULT Open(LPCTSTR szProgID,
   LPCTSTR pName,  LPCTSTR pUserName = NULL,
   LPCTSTR pPassword = NULL,
   long nInitMode = 0) throw();

HRESULT Open(const CEnumerator& enumerator,
   DBPROPSET* pPropSet = NULL,
   ULONG nPropertySets = 1) throw();

HRESULT Open(const CEnumerator& enumerator,
   LPCTSTR pName,
   LPCTSTR pUserName = NULL,
   LPCTSTR pPassword = NULL,
   long nInitMode = 0) throw();

HRESULT Open(HWND hWnd = GetActiveWindow(),
   DBPROMPTOPTIONS dwPromptOptions = DBPROMPTOPTIONS_WIZARDSHEET) throw();

HRESULT Open(LPCWSTR szProgID,
   DBPROPSET* pPropSet = NULL,
   ULONG nPropertySets = 1) throw();

HRESULT Open(LPCSTR szProgID,
   LPCTSTR pName,LPCTSTR pUserName = NULL,
   LPCTSTR pPassword = NULL,
   long nInitMode = 0) throw();

Parametri

clsid
[in] Oggetto CLSID del provider di dati.

pPropSet
[in] Puntatore a una matrice di strutture DBPROPSET contenenti proprietà e valori da impostare. Vedere Set di proprietà e gruppi di proprietà nella guida di riferimento per programmatori OLE DB in Windows SDK.

nPropertySets
[in] Numero di strutture DBPROPSET passate nell'argomento pPropSet .

pName
[in] Nome del database a cui connettersi.

pUserName
[in] Nome dell'utente.

pPassword
[in] Password dell'utente.

nInitMode
[in] Modalità di inizializzazione del database. Per un elenco delle modalità di inizializzazione valide, vedere Proprietàdi inizializzazione nella Guida di riferimento per programmatori OLE DB in Windows SDK. Se nInitMode è zero, non viene inclusa alcuna modalità di inizializzazione nel set di proprietà usato per aprire la connessione.

szProgID
[in] Identificatore di un programma.

enumerator
[in] Oggetto CEnumerator utilizzato per ottenere un moniker per aprire la connessione quando il chiamante non specifica un oggetto CLSID.

hWnd
[in] Handle per la finestra che deve essere l'elemento padre della finestra di dialogo. L'uso dell'overload della funzione che usa il parametro hWnd richiamerà automaticamente i componenti del servizio. Per informazioni dettagliate, vedere la sezione Note.

dwPromptOptions
[in] Determina lo stile della finestra di dialogo del localizzatore da visualizzare. Per i possibili valori, vedere Msdasc.h.

Valore restituito

HRESULT standard.

Osservazioni:

L'overload del metodo che usa il parametro hWnd apre un oggetto origine dati con i componenti del servizio in oledb32.dll. Questa DLL contiene l'implementazione delle funzionalità dei componenti del servizio, ad esempio il pool di risorse, l'integrazione automatica delle transazioni e così via. Per altre informazioni, vedere le informazioni di riferimento su OLE DB nella Guida per programmatori OLE DB.

Gli overload del metodo che non usano il parametro hWnd aprono un oggetto origine dati senza utilizzare i componenti del servizio in oledb32.dll. Un oggetto CDataSource aperto con questi overload di funzione non sarà in grado di utilizzare alcuna funzionalità dei componenti del servizio.

Esempio

Il codice seguente mostra come aprire un'origine dati Jet 4.0 con modelli OLE DB. L'origine dati Jet deve essere considerata un'origine dati OLE DB. Tuttavia, la chiamata a Open richiede due set di proprietà: uno per DBPROPSET_DBINIT e l'altro per DBPROPSET_JETOLEDB_DBINIT, in modo da poter impostare DBPROP_JETOLEDB_DATABASEPASSWORD.

CDBPropSet rgDBPropSet[2];  // Declare two property sets;
                            // set properties elsewhere as appropriate.

hr = m_DataSource.Open(szProgId, rgDBPropSet, 2);

CDataSource::OpenFromFileName

Apre un'origine dati da un file specificato dal nome file fornito dall'utente.

Sintassi

HRESULT OpenFromFileName(LPCOLESTR szFileName) throw();

Parametri

szFileName
[in] Nome di un file, in genere un file di connessione all'origine dati (UDL).

Per altre informazioni sui file di collegamento dati (file con estensione udl), vedere Panoramica dell'API Collegamento dati in Windows SDK.

Valore restituito

HRESULT standard.

Osservazioni:

Questo metodo apre un oggetto origine dati usando i componenti del servizio in oledb32.dll. Questa DLL contiene l'implementazione delle funzionalità dei componenti del servizio, come il pool di risorse, l'inserimento automatico delle transazioni e così via. Per altre informazioni, vedere le informazioni di riferimento su OLE DB nella Guida per programmatori OLE DB.

CDataSource::OpenFromInitializationString

Apre un'origine dati specificata dalla stringa di inizializzazione fornita dall'utente.

Sintassi

HRESULT OpenFromInitializationString(LPCOLESTR szInitializationString,
   bool fPromptForInfo= false) throw();

Parametri

szInitializationString
[in] Stringa di inizializzazione.

fPromptForInfo
[in] Se questo argomento è impostato su , OpenFromInitializationString la proprietà DBPROP_INIT_PROMPT verrà impostata truesu DBPROMPT_COMPLETEREQUIRED, che specifica che l'utente verrà richiesto solo se sono necessarie altre informazioni. Ciò è utile per le situazioni in cui la stringa di inizializzazione specifica un database che richiede una password, ma la stringa non contiene la password. All'utente verrà richiesta una password (o qualsiasi altra informazione mancante) quando si tenta di connettersi al database.

Il valore predefinito è false, che specifica che l'utente non viene mai richiesto (imposta DBPROP_INIT_PROMPT su DBPROMPT_NOPROMPT).

Valore restituito

HRESULT standard.

Osservazioni:

Questo metodo apre un oggetto origine dati usando i componenti del servizio in oledb32.dll. Questa DLL contiene l'implementazione delle funzionalità dei componenti del servizio, come il pool di risorse, l'inserimento automatico delle transazioni e così via.

CDataSource::OpenWithPromptFileName

Questo metodo visualizza all'utente una richiesta con una finestra di dialogo, quindi apre un'origine dati usando il file specificato dall'utente.

Sintassi

HRESULT OpenWithPromptFileName(HWND hWnd = GetActiveWindow(   ),
   DBPROMPTOPTIONS dwPromptOptions = DBPROMPTOPTIONS_NONE,
   LPCOLESTR szInitialDirectory = NULL) throw();

Parametri

hWnd
[in] Handle per la finestra che deve essere l'elemento padre della finestra di dialogo.

dwPromptOptions
[in] Determina lo stile della finestra di dialogo del localizzatore da visualizzare. Per i possibili valori, vedere Msdasc.h.

szInitialDirectory
[in] Directory iniziale per la visualizzazione della finestra di dialogo del localizzatore.

Valore restituito

HRESULT standard.

Osservazioni:

Questo metodo apre un oggetto origine dati usando i componenti del servizio in oledb32.dll. Questa DLL contiene l'implementazione delle funzionalità dei componenti del servizio, come il pool di risorse, l'inserimento automatico delle transazioni e così via. Per altre informazioni, vedere le informazioni di riferimento su OLE DB nella Guida per programmatori OLE DB.

CDataSource::OpenWithServiceComponents

Apre un oggetto origine dati usando i componenti del servizio in oledb32.dll.

Sintassi

HRESULT OpenWithServiceComponents (const CLSID clsid,
   DBPROPSET* pPropset = NULL,
   ULONG ulPropSets = 1);

HRESULT OpenWithServiceComponents (LPCSTR szProgID,
   DBPROPSET* pPropset = NULL,
   ULONG ulPropSets = 1);

Parametri

clsid
[in] Oggetto CLSID di un provider di dati.

szProgID
[in] ID programma di un provider di dati.

pPropset
[in] Puntatore a una matrice di strutture DBPROPSET contenenti proprietà e valori da impostare. Vedere Set di proprietà e gruppi di proprietà nella guida di riferimento per programmatori OLE DB in Windows SDK. Se l'oggetto origine dati viene inizializzato, le proprietà devono appartenere al gruppo di proprietà Data Source. Se la stessa proprietà viene specificata più di una volta in pPropset, quale valore viene usato è specifico del provider. Se ulPropSets è zero, questo parametro viene ignorato.

ulPropSets
[in] Numero di strutture DBPROPSET passate nell'argomento pPropSet . Se è zero, il provider ignora pPropset.

Valore restituito

HRESULT standard.

Osservazioni:

Questo metodo apre un oggetto origine dati usando i componenti del servizio in oledb32.dll. Questa DLL contiene l'implementazione delle funzionalità dei componenti del servizio, come il pool di risorse, l'inserimento automatico delle transazioni e così via. Per altre informazioni, vedere le informazioni di riferimento su OLE DB nella Guida per programmatori OLE DB.

Vedi anche

Modelli di consumer OLE DB
Riferimenti ai modelli consumer OLE DB