CDataSource – třída
Odpovídá objektu zdroje dat OLE DB, který představuje připojení prostřednictvím zprostředkovatele ke zdroji dat.
Syntaxe
class CDataSource
Požadavky
Hlavička: atldbcli.h
Členové
Metody
Název | Popis |
---|---|
Zavřít | Ukončí připojení. |
GetInitializationString | Načte inicializační řetězec aktuálně otevřeného zdroje dat. |
GetProperties | Získá hodnoty vlastností, které jsou aktuálně nastaveny pro připojený zdroj dat. |
GetProperty | Získá hodnotu jedné vlastnosti aktuálně nastavena pro připojený zdroj dat. |
Otevřená | Vytvoří připojení k poskytovateli (zdroji dat) pomocí symbolu CLSID nebo ProgID CEnumerator monikeru poskytnutého volajícím. |
OpenFromFileName | Otevře zdroj dat ze souboru určeného uživatelem zadaným názvem souboru. |
OpenFromInitializationString | Otevře zdroj dat určený inicializačním řetězcem. |
OpenWithPromptFileName | Umožňuje uživateli vybrat dříve vytvořený soubor datového propojení, aby otevřel odpovídající zdroj dat. |
OpenWithServiceComponents | Otevře objekt zdroje dat pomocí dialogového okna Propojení dat. |
Poznámky
Jednu nebo více databázových relací lze vytvořit pro jedno připojení. Tyto relace jsou reprezentovány CSession
. Před vytvořením relace s CSession::Open
aplikací musíte volat CDataSource::Open, aby se otevřelo připojení.
Příklad použití CDataSource
najdete v ukázce CatDB .
CDataSource::Close
Ukončí připojení uvolněním m_spInit
ukazatele.
Syntaxe
void Close() throw();
CDataSource::GetInitializationString
Načte inicializační řetězec aktuálně otevřeného zdroje dat.
Syntaxe
HRESULT GetInitializationString(BSTR* pInitializationString,
bool bIncludePassword = false) throw();
Parametry
pInitializationString
[ven] Ukazatel na inicializační řetězec.
bIncludePassword
[v] true
pokud řetězec obsahuje heslo; jinak false
.
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
Výsledný inicializační řetězec lze použít k pozdějšímu opětovnému otevření tohoto připojení ke zdroji dat.
CDataSource::GetProperties
Vrátí informace o vlastnosti požadované pro připojený objekt zdroje dat.
Syntaxe
HRESULT GetProperties(ULONG ulPropIDSets,
constDBPROPIDSET* pPropIDSet,
ULONG* pulPropertySets,
DBPROPSET** ppPropsets) const throw();
Parametry
Viz IDBProperties::GetProperties v odkazech programátorů OLE DB v sadě Windows SDK.
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
Chcete-li získat jednu vlastnost, použijte GetProperty.
CDataSource::GetProperty
Vrátí hodnotu zadané vlastnosti pro připojený objekt zdroje dat.
Syntaxe
HRESULT GetProperty(const GUID& guid,
DBPROPID propid,
VARIANT* pVariant) const throw();
Parametry
identifikátor guid
[v] Identifikátor GUID identifikující sadu vlastností, pro kterou se má vrátit vlastnost.
propid
[v] ID vlastnosti, která se má vrátit.
pVariant
[ven] Ukazatel na variantu, kde GetProperty
vrátí hodnotu vlastnosti.
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
Pokud chcete získat více vlastností, použijte GetProperties.
CDataSource::Open
Otevře připojení ke zdroji dat pomocí monikeru CLSID
ProgID
nebo CEnumerator
moniker nebo vyzve uživatele s dialogovým oknem lokátoru.
Syntaxe
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();
Parametry
clsid
[v] Poskytovatel CLSID
dat.
pPropSet
[v] Ukazatel na pole struktur DBPROPSET obsahující vlastnosti a hodnoty, které se mají nastavit. Viz Sady vlastností a skupiny vlastností v odkazech programátorů OLE DB v sadě Windows SDK.
nPropertySets
[v] Počet struktur DBPROPSET předaných v argumentu pPropSet .
pName
[v] Název databáze, ke které se chcete připojit.
pUserName
[v] Jméno uživatele.
pPassword
[v] Heslo uživatele.
nInitMode
[v] Režim inicializace databáze Seznam platných inicializačníchrežimů najdete v referenčních informacích programátora OLE DB v sadě Windows SDK. Pokud nInitMode je nula, není v sadě vlastností použito k otevření připojení žádný režim inicializace.
szProgID
[v] Identifikátor programu.
enumerátor
[v] Objekt CEnumerator použitý k získání moniker pro otevření připojení, pokud volající nezadá .CLSID
hWnd
[v] Úchyt pro okno, které je nadřazené dialogové okno. Pomocí přetížení funkce, která používá parametr hWnd , automaticky vyvolá součásti služby; viz Poznámky k podrobnostem.
dwPromptOptions
[v] Určuje styl dialogového okna lokátoru, které se má zobrazit. Možné hodnoty najdete v msdasc.h.
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
Přetížení metody, která používá hWnd parametr otevře objekt zdroje dat s komponentami služby v oledb32.dll; tato knihovna DLL obsahuje implementaci funkcí součásti služby, jako je sdružování zdrojů, automatické zařazení transakce atd. Další informace naleznete v odkazu OLE DB v Průvodci programátorem OLE DB.
Metoda přetíží, které nepoužívají parametr hWnd otevřít objekt zdroje dat bez použití komponent služby v oledb32.dll. Objekt CDataSource otevřený s těmito přetíženími funkce nebude moci využívat žádnou z funkcí součásti služby.
Příklad
Následující kód ukazuje, jak otevřít zdroj dat Jet 4.0 pomocí šablon OLE DB. Zdroj dat Jet považujete za zdroj dat OLE DB. Volání však Open
potřebuje dvě sady vlastností: jednu pro DBPROPSET_DBINIT a druhou pro DBPROPSET_JETOLEDB_DBINIT, abyste mohli nastavit DBPROP_JETOLEDB_DATABASEPASSWORD.
CDBPropSet rgDBPropSet[2]; // Declare two property sets;
// set properties elsewhere as appropriate.
hr = m_DataSource.Open(szProgId, rgDBPropSet, 2);
CDataSource::OpenFromFileName
Otevře zdroj dat ze souboru určeného uživatelem zadaným názvem souboru.
Syntaxe
HRESULT OpenFromFileName(LPCOLESTR szFileName) throw();
Parametry
szFileName
[v] Název souboru, obvykle připojení ke zdroji dat (. UDL) soubor.
Další informace o souborech datového propojení (soubory .udl) najdete v tématu Přehled rozhraní DATA LINK API v sadě Windows SDK.
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
Tato metoda otevře objekt zdroje dat pomocí komponent služby v oledb32.dll; tato knihovna DLL obsahuje implementaci funkcí součásti služby, jako je sdružování zdrojů, automatické zařazení transakcí atd. Další informace naleznete v odkazu OLE DB v Průvodci programátorem OLE DB.
CDataSource::OpenFromInitializationString
Otevře zdroj dat určený uživatelem zadaným inicializačním řetězcem.
Syntaxe
HRESULT OpenFromInitializationString(LPCOLESTR szInitializationString,
bool fPromptForInfo= false) throw();
Parametry
szInitializationString
[v] Inicializační řetězec.
fPromptForInfo
[v] Pokud je tento argument nastaven na true
, pak OpenFromInitializationString
nastaví DBPROP_INIT_PROMPT vlastnost na DBPROMPT_COMPLETEREQUIRED, která určuje, že uživatel bude vyzván pouze v případě, že je potřeba více informací. To je užitečné v situacích, kdy inicializační řetězec určuje databázi, která vyžaduje heslo, ale řetězec neobsahuje heslo. Při pokusu o připojení k databázi se uživateli zobrazí výzva k zadání hesla (nebo jiných chybějících informací).
Výchozí hodnota je false
, která určuje, že uživatel nebude nikdy vyzván (nastaví DBPROP_INIT_PROMPT na DBPROMPT_NOPROMPT).
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
Tato metoda otevře objekt zdroje dat pomocí komponent služby v oledb32.dll; tato knihovna DLL obsahuje implementaci funkcí součásti služby, jako je sdružování zdrojů, automatické zařazení transakcí atd.
CDataSource::OpenWithPromptFileName
Tato metoda vyzve uživatele k zobrazení dialogového okna a pak otevře zdroj dat pomocí souboru určeného uživatelem.
Syntaxe
HRESULT OpenWithPromptFileName(HWND hWnd = GetActiveWindow( ),
DBPROMPTOPTIONS dwPromptOptions = DBPROMPTOPTIONS_NONE,
LPCOLESTR szInitialDirectory = NULL) throw();
Parametry
hWnd
[v] Úchyt pro okno, které je nadřazené dialogové okno.
dwPromptOptions
[v] Určuje styl dialogového okna lokátoru, které se má zobrazit. Možné hodnoty najdete v msdasc.h.
szInitialDirectory
[v] Počáteční adresář, který se má zobrazit v dialogovém okně lokátoru.
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
Tato metoda otevře objekt zdroje dat pomocí komponent služby v oledb32.dll; tato knihovna DLL obsahuje implementaci funkcí součásti služby, jako je sdružování zdrojů, automatické zařazení transakcí atd. Další informace naleznete v odkazu OLE DB v Průvodci programátorem OLE DB.
CDataSource::OpenWithServiceComponents
Otevře objekt zdroje dat pomocí komponent služby v oledb32.dll.
Syntaxe
HRESULT OpenWithServiceComponents (const CLSID clsid,
DBPROPSET* pPropset = NULL,
ULONG ulPropSets = 1);
HRESULT OpenWithServiceComponents (LPCSTR szProgID,
DBPROPSET* pPropset = NULL,
ULONG ulPropSets = 1);
Parametry
clsid
[v] Poskytovatel CLSID
dat.
szProgID
[v] ID programu zprostředkovatele dat
pPropset
[v] Ukazatel na pole struktur DBPROPSET obsahující vlastnosti a hodnoty, které se mají nastavit. Viz Sady vlastností a skupiny vlastností v odkazech programátorů OLE DB v sadě Windows SDK. Pokud je inicializován objekt zdroje dat, vlastnosti musí patřit do skupiny vlastností Zdroj dat. Pokud je stejná vlastnost zadána více než jednou v pPropset, která hodnota je použita pro zprostředkovatele. Pokud je ulPropSets nula, bude tento parametr ignorován.
UlPropSets
[v] Počet struktur DBPROPSET předaných v argumentu pPropSet . Pokud se jedná o nulu, poskytovatel ignoruje pPropset.
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
Tato metoda otevře objekt zdroje dat pomocí komponent služby v oledb32.dll; tato knihovna DLL obsahuje implementaci funkcí součásti služby, jako je sdružování zdrojů, automatické zařazení transakcí atd. Další informace naleznete v odkazu OLE DB v Průvodci programátorem OLE DB.
Viz také
Šablony příjemců OLE DB
Referenční dokumentace k šablonám příjemců OLE DB