Dela via


CDataSource-klass

Motsvarar ett OLE DB-datakällans objekt, som representerar en anslutning via en provider till en datakälla.

Syntax

class CDataSource

Kravspecifikation

Rubrik: atldbcli.h

Members

Methods

Namn Description
Stänga Stänger anslutningen.
GetInitializationString Hämtar initieringssträngen för den datakälla som för närvarande är öppen.
GetProperties Hämtar värdena för de egenskaper som för närvarande har angetts för den anslutna datakällan.
GetProperty Hämtar värdet för en enskild egenskap som för närvarande har angetts för den anslutna datakällan.
Öppna Skapar en anslutning till en provider (datakälla) med antingen en CLSID, ProgIDeller en CEnumerator moniker som tillhandahålls av anroparen.
OpenFromFileName Öppnar en datakälla från en fil som anges av det angivna filnamnet.
OpenFromInitializationString Öppnar datakällan som anges av en initieringssträng.
OpenWithPromptFileName Tillåter att användaren väljer en tidigare skapad datalänkfil för att öppna motsvarande datakälla.
OpenWithServiceComponents Öppnar ett datakällans objekt med hjälp av dialogrutan Datalänk.

Anmärkningar

En eller flera databassessioner kan skapas för en enda anslutning. Dessa sessioner representeras av CSession. Du måste anropa CDataSource::Öppna för att öppna anslutningen innan du skapar en session med CSession::Open.

Ett exempel på hur du använder CDataSourcefinns i CatDB-exemplet .

CDataSource::Stäng

Stänger anslutningen genom att släppa pekaren m_spInit .

Syntax

void Close() throw();

CDataSource::GetInitializationString

Hämtar initieringssträngen för en datakälla som för närvarande är öppen.

Syntax

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

Parameterar

pInitializationString
[ut] En pekare till initieringssträngen.

bIncludePassword
[i] true om strängen innehåller ett lösenord; annars false.

Returvärde

En standard HRESULT.

Anmärkningar

Den resulterande initieringssträngen kan användas för att senare öppna den här datakällans anslutning igen.

CDataSource::GetProperties

Returnerar den egenskapsinformation som begärs för det anslutna datakällans objekt.

Syntax

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

Parameterar

Se IDBProperties::GetProperties i OLE DB-programmerarens referens i Windows SDK.

Returvärde

En standard HRESULT.

Anmärkningar

Om du vill hämta en enda egenskap använder du GetProperty.

CDataSource::GetProperty

Returnerar värdet för en angiven egenskap för det anslutna datakällans objekt.

Syntax

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

Parameterar

guid
[i] Ett GUID som identifierar den egenskapsuppsättning som egenskapen ska returneras för.

propid
[i] Egenskaps-ID för att egenskapen ska returneras.

pVariant
[ut] En pekare till varianten där GetProperty returnerar värdet för egenskapen.

Returvärde

En standard HRESULT.

Anmärkningar

Om du vill hämta flera egenskaper använder du GetProperties.

CDataSource::Öppna

Öppnar en anslutning till en datakälla med hjälp av en CLSID, ProgIDeller CEnumerator moniker eller uppmanar användaren med en positionerare dialogruta.

Syntax

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();

Parameterar

clsid
[i] Dataproviderns CLSID .

pPropSet
[i] En pekare till en matris med DBPROPSET-strukturer som innehåller egenskaper och värden som ska anges. Se Egenskapsuppsättningar och egenskapsgrupper i OLE DB-programmerarens referens i Windows SDK.

nPropertySets
[i] Antalet DBPROPSET-strukturer som skickades i argumentet pPropSet .

pName
[i] Namnet på databasen som ska anslutas till.

pUserName
[i] Namnet på användaren.

pPassword
[i] Användarens lösenord.

nInitMode
[i] Databasinitieringsläge. Se Initieringsegenskaper i OLE DB-programmerarens referens i Windows SDK för en lista över giltiga initieringslägen. Om nInitMode är noll ingår inget initieringsläge i egenskapsuppsättningen som används för att öppna anslutningen.

szProgID
[i] En programidentifierare.

uppräknare
[i] Ett CEnumerator-objekt som används för att hämta en moniker för att öppna anslutningen när anroparen inte anger en CLSID.

hWnd
[i] Hantera det fönster som ska vara överordnat i dialogrutan. Om du använder den funktionsöverlagring som använder parametern hWnd anropas automatiskt Tjänstkomponenter. se Kommentarer för mer information.

dwPromptOptions
[i] Avgör vilken typ av dialogruta för positionerare som ska visas. Se Msdasc.h för möjliga värden.

Returvärde

En standard HRESULT.

Anmärkningar

Metodens överlagring som använder parametern hWnd öppnar ett datakällobjekt med tjänstkomponenterna i oledb32.dll; Den här DLL-filen innehåller implementeringen av funktioner för tjänstkomponenter, till exempel resurspooler, automatisk transaktionslistning och så vidare. Mer information finns i OLE DB-referensen i OLE DB Programmer's Guide.

Metoden överbelastar som inte använder parametern hWnd öppnar ett datakällobjekt utan att använda tjänstkomponenterna i oledb32.dll. Ett CDataSource-objekt som öppnas med dessa funktionsöverbelastningar kan inte använda någon av funktionerna i Tjänstkomponenter.

Example

Följande kod visar hur du öppnar en Jet 4.0-datakälla med OLE DB-mallar. Du behandlar Jet-datakällan som en OLE DB-datakälla. Anropet till Open behöver dock två egenskapsuppsättningar: en för DBPROPSET_DBINIT och den andra för DBPROPSET_JETOLEDB_DBINIT, så att du kan ange DBPROP_JETOLEDB_DATABASEPASSWORD.

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

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

CDataSource::OpenFromFileName

Öppnar en datakälla från en fil som anges av det angivna filnamnet.

Syntax

HRESULT OpenFromFileName(LPCOLESTR szFileName) throw();

Parameterar

szFileName
[i] Namnet på en fil, vanligtvis en anslutning till datakällan (. UDL-fil.

Mer information om datalänkfiler (.udl-filer) finns i Översikt över Data Link API i Windows SDK.

Returvärde

En standard HRESULT.

Anmärkningar

Den här metoden öppnar ett datakällaobjekt med hjälp av tjänstkomponenterna i oledb32.dll; Den här DLL-filen innehåller implementeringen av funktioner för tjänstkomponenter, till exempel resurspooler, automatisk transaktionslistning och så vidare. Mer information finns i OLE DB-referensen i OLE DB Programmer's Guide.

CDataSource::OpenFromInitializationString

Öppnar en datakälla som anges av initieringssträngen från användaren.

Syntax

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

Parameterar

szInitializationString
[i] Initieringssträngen.

fPromptForInfo
[i] Om det här argumentet är inställt på trueOpenFromInitializationString anger du egenskapen DBPROP_INIT_PROMPT till DBPROMPT_COMPLETEREQUIRED, vilket anger att användaren endast uppmanas om mer information behövs. Detta är användbart för situationer där initieringssträngen anger en databas som kräver ett lösenord, men strängen innehåller inte lösenordet. Användaren uppmanas att ange ett lösenord (eller annan information som saknas) när han eller hon försöker ansluta till databasen.

Standardvärdet är false, som anger att användaren aldrig uppmanas (anger DBPROP_INIT_PROMPT till DBPROMPT_NOPROMPT).

Returvärde

En standard HRESULT.

Anmärkningar

Den här metoden öppnar ett datakällaobjekt med hjälp av tjänstkomponenterna i oledb32.dll; Den här DLL-filen innehåller implementeringen av funktioner för tjänstkomponenter, till exempel resurspooler, automatisk transaktionslistning och så vidare.

CDataSource::OpenWithPromptFileName

Den här metoden uppmanar användaren med en dialogruta och öppnar sedan en datakälla med hjälp av den fil som användaren har angett.

Syntax

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

Parameterar

hWnd
[i] Hantera det fönster som ska vara överordnat i dialogrutan.

dwPromptOptions
[i] Avgör vilken typ av dialogruta för positionerare som ska visas. Se Msdasc.h för möjliga värden.

szInitialDirectory
[i] Den första katalogen som ska visas i dialogrutan lokaliserare.

Returvärde

En standard HRESULT.

Anmärkningar

Den här metoden öppnar ett datakällaobjekt med hjälp av tjänstkomponenterna i oledb32.dll; Den här DLL-filen innehåller implementeringen av funktioner för tjänstkomponenter, till exempel resurspooler, automatisk transaktionslistning och så vidare. Mer information finns i OLE DB-referensen i OLE DB Programmer's Guide.

CDataSource::OpenWithServiceComponents

Öppnar ett datakällaobjekt med hjälp av tjänstkomponenterna i oledb32.dll.

Syntax

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

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

Parameterar

clsid
[i] En CLSID dataproviders.

szProgID
[i] Program-ID för en dataprovider.

pPropset
[i] En pekare till en matris med DBPROPSET-strukturer som innehåller egenskaper och värden som ska anges. Se Egenskapsuppsättningar och egenskapsgrupper i OLE DB-programmerarens referens i Windows SDK. Om datakällans objekt initieras måste egenskaperna tillhöra egenskapsgruppen Datakälla. Om samma egenskap anges mer än en gång i pPropset är vilket värde som används providerspecifikt. Om ulPropSets är noll ignoreras den här parametern.

ulPropSets
[i] Antalet DBPROPSET-strukturer som skickades i argumentet pPropSet . Om detta är noll ignorerar providern pPropset.

Returvärde

En standard HRESULT.

Anmärkningar

Den här metoden öppnar ett datakällaobjekt med hjälp av tjänstkomponenterna i oledb32.dll; Den här DLL-filen innehåller implementeringen av funktioner för tjänstkomponenter, till exempel resurspooler, automatisk transaktionslistning och så vidare. Mer information finns i OLE DB-referensen i OLE DB Programmer's Guide.

Se även

OLE DB-konsumentmallar
Referens för OLE DB-konsumentmallar