Udostępnij za pośrednictwem


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, ProgIDlub 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::Openpolecenia .

Przykład użycia usługi CDataSourcemoż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 , CLSIDProgIDlub 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 truewartość , 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