CDataSource-Klasse
Entspricht einem OLE DB-Datenquellenobjekt, das eine Verbindung über einen Anbieter zu einer Datenquelle darstellt.
class CDataSource
Header: atldbcli.h
Name | Beschreibung |
---|---|
Abschließen | Schließen der Verbindung. |
GetInitializationString | Ruft die Initialisierungszeichenfolge der zurzeit geöffneten Datenquelle ab. |
GetProperties | Ruft die Werte der Eigenschaften ab, die derzeit für die verbundene Datenquelle festgelegt sind. |
GetProperty | Ruft den Wert einer einzelnen Eigenschaft ab, die derzeit für die verbundene Datenquelle festgelegt ist. |
Offen | Erstellt eine Verbindung mit einem Anbieter (Datenquelle) mithilfe eines CLSID vom ProgID Aufrufer bereitgestellten Monikers oder eines CEnumerator vom Aufrufer bereitgestellten Monikers. |
OpenFromFileName | Öffnet eine Datenquelle aus einer Datei, die durch den vom Benutzer bereitgestellten Dateinamen angegeben wird. |
OpenFromInitializationString | Öffnet die durch eine Initialisierungszeichenfolge angegebene Datenquelle. |
OpenWithPromptFileName | Ermöglicht dem Benutzer, eine zuvor erstellte Datenlinkdatei auszuwählen, um die entsprechende Datenquelle zu öffnen. |
OpenWithServiceComponents | Öffnet ein Datenquellenobjekt mithilfe des Dialogfelds "Datenverbindung". |
Mindestens eine Datenbanksitzung kann für eine einzelne Verbindung erstellt werden. Diese Sitzungen werden durch CSession
. Sie müssen CDataSource::Open aufrufen, um die Verbindung zu öffnen, bevor Sie eine Sitzung mit CSession::Open
.
Ein Beispiel für die Verwendung CDataSource
finden Sie im CatDB-Beispiel .
Schließt die Verbindung, indem der m_spInit
Zeiger losgelassen wird.
void Close() throw();
Ruft die Initialisierungszeichenfolge einer aktuell geöffneten Datenquelle ab.
HRESULT GetInitializationString(BSTR* pInitializationString,
bool bIncludePassword = false) throw();
pInitializationString
[out] Ein Zeiger auf die Initialisierungszeichenfolge.
bIncludePassword
[in] true
wenn eine Zeichenfolge ein Kennwort enthält; andernfalls false
.
Ein Standard-HRESULT.
Die resultierende Initialisierungszeichenfolge kann verwendet werden, um diese Datenquellenverbindung später erneut zu öffnen.
Gibt die Eigenschafteninformationen zurück, die für das verbundene Datenquellenobjekt angefordert werden.
HRESULT GetProperties(ULONG ulPropIDSets,
constDBPROPIDSET* pPropIDSet,
ULONG* pulPropertySets,
DBPROPSET** ppPropsets) const throw();
Siehe IDBProperties::GetProperties in der OLE DB-Programmierreferenz im Windows SDK.
Ein Standard-HRESULT.
Verwenden Sie GetProperty, um eine einzelne Eigenschaft abzurufen.
Gibt den Wert einer angegebenen Eigenschaft für das verbundene Datenquellenobjekt zurück.
HRESULT GetProperty(const GUID& guid,
DBPROPID propid,
VARIANT* pVariant) const throw();
guid
[in] Eine GUID, die den Eigenschaftensatz angibt, für den die Eigenschaft zurückgegeben werden soll.
propid
[in] Eigenschafts-ID für die zurückzugebende Eigenschaft.
pVariant
[out] Ein Zeiger auf die Variante, in GetProperty
der der Wert der Eigenschaft zurückgegeben wird.
Ein Standard-HRESULT.
Verwenden Sie GetProperties, um mehrere Eigenschaften abzurufen.
Öffnet eine Verbindung mit einer Datenquelle mit einem CLSID
, ProgID
oder moniker oder CEnumerator
fordert den Benutzer mit einem Locator-Dialogfeld auf.
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();
clsid
[in] Der CLSID
Datenanbieter.
pPropSet
[in] Ein Zeiger auf ein Array von DBPROPSET-Strukturen , die Eigenschaften und Werte enthalten, die festgelegt werden sollen. Siehe Eigenschaftensätze und Eigenschaftengruppen in der OLE DB-Programmierreferenz im Windows SDK.
nPropertySets
[in] Die Anzahl der im pPropSet-Argument übergebenen DBPROPSET-Strukturen.
pName
[in] Der Name der Datenbank, zu der eine Verbindung hergestellt werden soll.
pUserName
[in] Der Name des Benutzers.
pPassword
[in] Das Benutzerkennwort.
nInitMode
[in] Initialisierungsmodus der Datenbank. Eine Liste der gültigen Initialisierungsmodi finden Sie unter "Initialisierungseigenschaften" in der OLE DB-Programmierreferenz im Windows SDK. Wenn nInitMode null ist, ist kein Initialisierungsmodus im Eigenschaftensatz enthalten, der zum Öffnen der Verbindung verwendet wird.
szProgID
[in] Ein Programmbezeichner.
enumerator
[in] Ein CEnumerator -Objekt, das verwendet wird, um einen Moniker zum Öffnen der Verbindung zu erhalten, wenn der Aufrufer keine .CLSID
hWnd
[in] Handle für das Fenster, das als das übergeordnete Element des Dialogfelds festgelegt werden soll. Die Verwendung der Funktionsüberladung, die den hWnd-Parameter verwendet, ruft automatisch Dienstkomponenten auf. Weitere Informationen finden Sie in den Hinweisen.
dwPromptOptions
[in] Bestimmt den Stil des anzuzeigenden Locatordialogfelds. Mögliche Werte sind in Msdasc.h aufgeführt.
Ein Standard-HRESULT.
Die Methodenüberladung, die den hWnd-Parameter verwendet, öffnet ein Datenquellenobjekt mit den Dienstkomponenten in oledb32.dll. Diese DLL enthält die Implementierung von Dienstkomponentenfeatures wie Ressourcenpooling, automatische Transaktionsauflistung usw. Weitere Informationen finden Sie in der OLE DB-Referenz im OLE DB-Programmierhandbuch.
Die Methodenüberladungen, die den hWnd-Parameter nicht verwenden, öffnen ein Datenquellenobjekt, ohne die Dienstkomponenten in oledb32.dll zu verwenden. Ein mit diesen Funktionsüberladungen geöffnetes CDataSource-Objekt kann keine der Funktionen von Dienstkomponenten verwenden.
Der folgende Code zeigt, wie eine Jet 4.0-Datenquelle mit OLE DB-Vorlagen geöffnet werden kann. Die Jet-Datenquelle wird OLE DB-Datenquelle behandelt. Ihr Aufruf benötigt Open
jedoch zwei Eigenschaftensätze: eine für DBPROPSET_DBINIT und die andere für DBPROPSET_JETOLEDB_DBINIT, sodass Sie DBPROP_JETOLEDB_DATABASEPASSWORD festlegen können.
CDBPropSet rgDBPropSet[2]; // Declare two property sets;
// set properties elsewhere as appropriate.
hr = m_DataSource.Open(szProgId, rgDBPropSet, 2);
Öffnet eine Datenquelle aus einer Datei, die durch den vom Benutzer bereitgestellten Dateinamen angegeben wird.
HRESULT OpenFromFileName(LPCOLESTR szFileName) throw();
szFileName
[in] Der Name einer Datei, in der Regel eine Datenquellenverbindungsdatei (UDL-Datei).
Weitere Informationen zu Datenlinkdateien (UDL-Dateien) finden Sie unter Data Link API Overview in the Windows SDK.
Ein Standard-HRESULT.
Diese Methode öffnet ein Datenquellenobjekt mit den Dienstkomponenten im oledb32.dll; Diese DLL enthält die Implementierung von Dienstkomponentenfeatures wie z. B. Ressourcenpooling, automatische Transaktionseintragung usw. Weitere Informationen finden Sie in der OLE DB-Referenz im OLE DB-Programmierhandbuch.
Öffnet eine datenquelle, die durch die vom Benutzer bereitgestellte Initialisierungszeichenfolge angegeben wird.
HRESULT OpenFromInitializationString(LPCOLESTR szInitializationString,
bool fPromptForInfo= false) throw();
szInitializationString
[in] Die Initialisierungszeichenfolge.
fPromptForInfo
[in] Wenn dieses Argument auf true
festgelegt ist, wird die OpenFromInitializationString
DBPROP_INIT_PROMPT Eigenschaft auf DBPROMPT_COMPLETEREQUIRED festgelegt, wodurch angegeben wird, dass der Benutzer nur dann aufgefordert wird, wenn weitere Informationen erforderlich sind. Dies ist nützlich für Situationen, in denen die Initialisierungszeichenfolge eine Datenbank angibt, die ein Kennwort erfordert, die Zeichenfolge jedoch nicht das Kennwort enthält. Der Benutzer wird beim Versuch, eine Verbindung mit der Datenbank herzustellen, zur Eingabe eines Kennworts (oder anderer fehlender Informationen) aufgefordert.
Der Standardwert ist false
, der angibt, dass der Benutzer nie aufgefordert wird (legt DBPROP_INIT_PROMPT auf DBPROMPT_NOPROMPT fest).
Ein Standard-HRESULT.
Diese Methode öffnet ein Datenquellenobjekt mit den Dienstkomponenten im oledb32.dll; Diese DLL enthält die Implementierung von Dienstkomponentenfeatures wie z. B. Ressourcenpooling, automatische Transaktionseintragung usw.
Mit dieser Methode wird dem Benutzer ein Dialogfeld angezeigt und anschließend eine Datenquelle mithilfe der vom Benutzer angegebenen Datei geöffnet.
HRESULT OpenWithPromptFileName(HWND hWnd = GetActiveWindow( ),
DBPROMPTOPTIONS dwPromptOptions = DBPROMPTOPTIONS_NONE,
LPCOLESTR szInitialDirectory = NULL) throw();
hWnd
[in] Handle für das Fenster, das als das übergeordnete Element des Dialogfelds festgelegt werden soll.
dwPromptOptions
[in] Bestimmt den Stil des anzuzeigenden Locatordialogfelds. Mögliche Werte sind in Msdasc.h aufgeführt.
szInitialDirectory
[in] Das im Locatordialogfeld anzuzeigende Ausgangsverzeichnis.
Ein Standard-HRESULT.
Diese Methode öffnet ein Datenquellenobjekt mit den Dienstkomponenten im oledb32.dll; Diese DLL enthält die Implementierung von Dienstkomponentenfeatures wie z. B. Ressourcenpooling, automatische Transaktionseintragung usw. Weitere Informationen finden Sie in der OLE DB-Referenz im OLE DB-Programmierhandbuch.
Öffnet ein Datenquellenobjekt mithilfe der Dienstkomponenten in „oledb32.dll“.
HRESULT OpenWithServiceComponents (const CLSID clsid,
DBPROPSET* pPropset = NULL,
ULONG ulPropSets = 1);
HRESULT OpenWithServiceComponents (LPCSTR szProgID,
DBPROPSET* pPropset = NULL,
ULONG ulPropSets = 1);
clsid
[in] Der CLSID
Datenanbieter.
szProgID
[in] Programm-ID eines Datenanbieters.
pPropset
[in] Ein Zeiger auf ein Array von DBPROPSET-Strukturen , die Eigenschaften und Werte enthalten, die festgelegt werden sollen. Siehe Eigenschaftensätze und Eigenschaftengruppen in der OLE DB-Programmierreferenz im Windows SDK. Wenn das Datenquellenobjekt initialisiert wird, müssen die Eigenschaften zur Eigenschaftsquelle „Datenquelle“ gehören. Wenn dieselbe Eigenschaft mehrmals in pPropset angegeben wird, ist der verwendete Wert anbieterspezifisch. Wenn ulPropSets null ist, wird dieser Parameter ignoriert.
ulPropSets
[in] Die Anzahl der im pPropSet-Argument übergebenen DBPROPSET-Strukturen. Wenn dies null ist, ignoriert der Anbieter pPropset.
Ein Standard-HRESULT.
Diese Methode öffnet ein Datenquellenobjekt mit den Dienstkomponenten im oledb32.dll; Diese DLL enthält die Implementierung von Dienstkomponentenfeatures wie z. B. Ressourcenpooling, automatische Transaktionseintragung usw. Weitere Informationen finden Sie in der OLE DB-Referenz im OLE DB-Programmierhandbuch.
OLE DB-Consumervorlagen
Referenz der OLE DB-Consumervorlagen