CDataSource — Klasa
Odpowiada obiektowi źródła danych OLE DB, który reprezentuje połączenie za pośrednictwem dostawcy ze źródłem danych.
Składnia
class CDataSource
Wymagania
Nagłówek: atldbcli.h
Elementy członkowskie
Metody
Nazwa/nazwisko | opis |
---|---|
Zamknij | Zamknięcie połączenia. |
GetInitializationString | Pobiera ciąg inicjowania źródła danych, który jest obecnie otwarty. |
GetProperties | Pobiera wartości właściwości aktualnie ustawionych dla połączonego źródła danych. |
GetProperty | Pobiera wartość pojedynczej właściwości obecnie ustawionej dla połączonego źródła danych. |
Otwórz | Tworzy połączenie z dostawcą (źródłem danych) przy użyciu elementu CLSID , ProgID lub CEnumerator moniker dostarczonego przez obiekt wywołujący. |
OpenFromFileName | Otwiera źródło danych z pliku określonego przez nazwę pliku dostarczonego przez użytkownika. |
OpenFromInitializationString | Otwiera źródło danych określone przez ciąg inicjowania. |
OpenWithPromptFileName | Umożliwia użytkownikowi wybranie wcześniej utworzonego pliku linku danych w celu otwarcia odpowiedniego źródła danych. |
OpenWithServiceComponents | Otwiera obiekt źródła danych przy użyciu okna dialogowego Łącze danych. |
Uwagi
Dla jednego połączenia można utworzyć co najmniej jedną sesję bazy danych. Te sesje są reprezentowane przez .CSession
Musisz wywołać metodę CDataSource::Open , aby otworzyć połączenie przed utworzeniem sesji za pomocą CSession::Open
polecenia .
Przykład użycia usługi CDataSource
można znaleźć w przykładzie catDB .
CDataSource::Close
Zamyka połączenie, zwalniając m_spInit
wskaźnik.
Składnia
void Close() throw();
CDataSource::GetInitializationString
Pobiera ciąg inicjowania źródła danych, które jest obecnie otwarte.
Składnia
HRESULT GetInitializationString(BSTR* pInitializationString,
bool bIncludePassword = false) throw();
Parametry
pInitializationString
[out] Wskaźnik do ciągu inicjowania.
bIncludePassword
[in] true
jeśli ciąg zawiera hasło; w przeciwnym razie false
.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Wynikowe parametry inicjowania mogą służyć do późniejszego ponownego otwarcia tego połączenia ze źródłem danych.
CDataSource::GetProperties
Zwraca informacje o właściwości żądane dla połączonego obiektu źródła danych.
Składnia
HRESULT GetProperties(ULONG ulPropIDSets,
constDBPROPIDSET* pPropIDSet,
ULONG* pulPropertySets,
DBPROPSET** ppPropsets) const throw();
Parametry
Zobacz IDBProperties::GetProperties w dokumentacji programisty OLE DB w zestawie Windows SDK.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Aby uzyskać pojedynczą właściwość, użyj polecenia GetProperty.
CDataSource::GetProperty
Zwraca wartość określonej właściwości dla połączonego obiektu źródła danych.
Składnia
HRESULT GetProperty(const GUID& guid,
DBPROPID propid,
VARIANT* pVariant) const throw();
Parametry
guid
[in] Identyfikator GUID identyfikujący zestaw właściwości, dla którego ma być zwracana właściwość.
propid
[in] Identyfikator właściwości, który ma być zwracany przez właściwość.
Odchylenie pVariant
[out] Wskaźnik do wariantu, w którym GetProperty
zwraca wartość właściwości.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Aby uzyskać wiele właściwości, użyj polecenia GetProperties.
CDataSource::Open
Otwiera połączenie ze źródłem danych przy użyciu , CLSID
ProgID
lub moniker lub CEnumerator
monituje użytkownika o okno dialogowe lokalizatora.
Składnia
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
[in] Dostawca CLSID
danych.
pPropSet
[in] Wskaźnik do tablicy struktur DBPROPSET zawierających właściwości i wartości do ustawienia. Zobacz Zestawy właściwości i grupy właściwości w dokumentacji programisty OLE DB w zestawie Windows SDK.
nPropertySets
[in] Liczba struktur DBPROPSET przekazanych w argumencie pPropSet .
pName
[in] Nazwa bazy danych, z którą chcesz nawiązać połączenie.
pUserName
[in] Nazwa użytkownika.
pPassword
[in] Hasło użytkownika.
nInitMode
[in] Tryb inicjowania bazy danych. Aby uzyskać listę prawidłowych trybów inicjowania, zobacz Właściwościinicjowania w dokumentacji programisty OLE DB w zestawie Windows SDK. Jeśli parametr nInitMode ma wartość zero, żaden tryb inicjowania nie jest uwzględniony w zestawie właściwości używanym do otwierania połączenia.
szProgID
[in] Identyfikator programu.
Moduł wyliczający
[in] Obiekt CEnumerator używany do uzyskiwania nazwy moniker do otwierania połączenia, gdy obiekt wywołujący nie określa CLSID
.
hWnd
[in] Dojmij do okna, które ma być elementem nadrzędnym okna dialogowego. Użycie przeciążenia funkcji używającego parametru hWnd spowoduje automatyczne wywołanie składników usługi; zobacz Uwagi, aby uzyskać szczegółowe informacje.
dwPromptOptions
[in] Określa styl okna dialogowego lokalizatora do wyświetlenia. Zobacz Msdasc.h, aby uzyskać możliwe wartości.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Przeciążenie metody korzystające z parametru hWnd otwiera obiekt źródła danych ze składnikami usługi w oledb32.dll. Ta biblioteka DLL zawiera implementację funkcji składników usługi, takich jak buforowanie zasobów, automatyczne rejestrowanie transakcji itd. Aby uzyskać więcej informacji, zobacz dokumentację OLE DB w przewodniku programisty OLE DB.
Metoda przeciąża, które nie używają parametru hWnd otworzyć obiekt źródła danych bez używania składników usługi w oledb32.dll. Obiekt CDataSource otwarty z tymi przeciążeniami funkcji nie będzie mógł korzystać z żadnej funkcji składników usługi.
Przykład
Poniższy kod pokazuje, jak otworzyć źródło danych Jet 4.0 za pomocą szablonów OLE DB. Źródło danych Jet jest traktowane jako źródło danych OLE DB. Jednak wywołanie Open
wymaga dwóch zestawów właściwości: jeden dla DBPROPSET_DBINIT i drugi dla DBPROPSET_JETOLEDB_DBINIT, aby można było ustawić DBPROP_JETOLEDB_DATABASEPASSWORD.
CDBPropSet rgDBPropSet[2]; // Declare two property sets;
// set properties elsewhere as appropriate.
hr = m_DataSource.Open(szProgId, rgDBPropSet, 2);
CDataSource::OpenFromFileName
Otwiera źródło danych z pliku określonego przez nazwę pliku dostarczonego przez użytkownika.
Składnia
HRESULT OpenFromFileName(LPCOLESTR szFileName) throw();
Parametry
szFileName
[in] Nazwa pliku, zwykle połączenie ze źródłem danych (. Plik UDL).
Aby uzyskać więcej informacji na temat plików linków danych (pliki udl), zobacz Omówienie interfejsu API łącza danych w zestawie Windows SDK.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda otwiera obiekt źródła danych przy użyciu składników usługi w oledb32.dll; ta biblioteka DLL zawiera implementację funkcji składników usługi, takich jak buforowanie zasobów, automatyczne rejestrowanie transakcji itd. Aby uzyskać więcej informacji, zobacz dokumentację OLE DB w przewodniku programisty OLE DB.
CDataSource::OpenFromInitializationString
Otwiera źródło danych określone przez ciąg inicjowania dostarczony przez użytkownika.
Składnia
HRESULT OpenFromInitializationString(LPCOLESTR szInitializationString,
bool fPromptForInfo= false) throw();
Parametry
szInitializationString
[in] Ciąg inicjowania.
fPromptForInfo
[in] Jeśli ten argument jest ustawiony na true
wartość , OpenFromInitializationString
ustawi właściwość DBPROP_INIT_PROMPT na DBPROMPT_COMPLETEREQUIRED, która określa, że użytkownik będzie monitowany tylko wtedy, gdy będzie potrzebna więcej informacji. Jest to przydatne w sytuacjach, w których ciąg inicjowania określa bazę danych, która wymaga hasła, ale ciąg nie zawiera hasła. Podczas próby nawiązania połączenia z bazą danych zostanie wyświetlony monit o podanie hasła (lub innych brakujących informacji).
Wartość domyślna to false
, która określa, że użytkownik nigdy nie jest monitowany (ustawia DBPROP_INIT_PROMPT na DBPROMPT_NOPROMPT).
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda otwiera obiekt źródła danych przy użyciu składników usługi w oledb32.dll; ta biblioteka DLL zawiera implementację funkcji składników usługi, takich jak buforowanie zasobów, automatyczne rejestrowanie transakcji itd.
CDataSource::OpenWithPromptFileName
Ta metoda monituje użytkownika o okno dialogowe, a następnie otwiera źródło danych przy użyciu pliku określonego przez użytkownika.
Składnia
HRESULT OpenWithPromptFileName(HWND hWnd = GetActiveWindow( ),
DBPROMPTOPTIONS dwPromptOptions = DBPROMPTOPTIONS_NONE,
LPCOLESTR szInitialDirectory = NULL) throw();
Parametry
hWnd
[in] Dojmij do okna, które ma być elementem nadrzędnym okna dialogowego.
dwPromptOptions
[in] Określa styl okna dialogowego lokalizatora do wyświetlenia. Zobacz Msdasc.h, aby uzyskać możliwe wartości.
szInitialDirectory
[in] Początkowy katalog do wyświetlenia w oknie dialogowym lokalizatora.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda otwiera obiekt źródła danych przy użyciu składników usługi w oledb32.dll; ta biblioteka DLL zawiera implementację funkcji składników usługi, takich jak buforowanie zasobów, automatyczne rejestrowanie transakcji itd. Aby uzyskać więcej informacji, zobacz dokumentację OLE DB w przewodniku programisty OLE DB.
CDataSource::OpenWithServiceComponents
Otwiera obiekt źródła danych przy użyciu składników usługi w oledb32.dll.
Składnia
HRESULT OpenWithServiceComponents (const CLSID clsid,
DBPROPSET* pPropset = NULL,
ULONG ulPropSets = 1);
HRESULT OpenWithServiceComponents (LPCSTR szProgID,
DBPROPSET* pPropset = NULL,
ULONG ulPropSets = 1);
Parametry
clsid
[in] Dostawca CLSID
danych.
szProgID
[in] Identyfikator programu dostawcy danych.
pPropset
[in] Wskaźnik do tablicy struktur DBPROPSET zawierających właściwości i wartości do ustawienia. Zobacz Zestawy właściwości i grupy właściwości w dokumentacji programisty OLE DB w zestawie Windows SDK. Jeśli obiekt źródła danych jest inicjowany, właściwości muszą należeć do grupy właściwości Źródło danych. Jeśli ta sama właściwość jest określona więcej niż raz w pPropset, to która wartość jest używana jest specyficzna dla dostawcy. Jeśli parametr ulPropSets ma wartość zero, ten parametr jest ignorowany.
ulPropSets
[in] Liczba struktur DBPROPSET przekazanych w argumencie pPropSet . Jeśli jest to zero, dostawca ignoruje wartość pPropset.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda otwiera obiekt źródła danych przy użyciu składników usługi w oledb32.dll; ta biblioteka DLL zawiera implementację funkcji składników usługi, takich jak buforowanie zasobów, automatyczne rejestrowanie transakcji itd. Aby uzyskać więcej informacji, zobacz dokumentację OLE DB w przewodniku programisty OLE DB.
Zobacz też
Szablony konsumentów OLE DB
Szablony konsumentów OLE DB — dokumentacja