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 CLSID moniker , ProgID o 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 CLSID
moniker , ProgID
o 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 true
su 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