Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Implementuje właściwości dla różnych interfejsów właściwości OLE DB (na przykład IDBProperties
, , IDBProperties
i IRowsetInfo
).
Składnia
template < class T >
class ATL_NO_VTABLE CUtlProps : public CUtlPropsBase
Parametry
T
Klasa zawierająca element BEGIN_PROPSET_MAP
.
Wymagania
Nagłówek: atldb.h
Elementy członkowskie
Metody
Nazwa/nazwisko | opis |
---|---|
GetPropValue | Pobiera właściwość z zestawu właściwości. |
IsValidValue | Służy do sprawdzania poprawności wartości przed ustawieniem właściwości. |
OnInterfaceRequested | Obsługuje żądania opcjonalnego interfejsu, gdy użytkownik wywołuje metodę w interfejsie tworzenia obiektu. |
OnPropertyChanged | Wywoływana po ustawieniu właściwości do obsługi właściwości łańcuchowych. |
SetPropValue | Ustawia właściwość w zestawie właściwości. |
Uwagi
Większość tej klasy jest szczegółem implementacji.
CUtlProps
Zawiera dwa elementy członkowskie ustawiania właściwości wewnętrznie: GetPropValue i SetPropValue.
Aby uzyskać więcej informacji na temat makr używanych w mapie zestawu właściwości, zobacz BEGIN_PROPSET_MAP i END_PROPSET_MAP.
CUtlProps::GetPropValue
Pobiera właściwość z zestawu właściwości.
Składnia
OUT_OF_LINE HRESULT GetPropValue(const GUID* pguidPropSet,
DBPROPID dwPropId,
VARIANT* pvValue);
Parametry
pguidPropSet
[in] Identyfikator GUID zestawu propset.
dwPropId
[in] Indeks właściwości.
pvValue
[out] Wskaźnik do wariantu zawierającego nową wartość właściwości.
Wartość zwracana
Failure
w przypadku awarii i S_OK, jeśli się powiedzie.
CUtlProps::IsValidValue
Służy do sprawdzania poprawności wartości przed ustawieniem właściwości.
Składnia
virtual HRESULT CUtlPropsBase::IsValidValue(ULONG /* iCurSet */,
DBPROP* pDBProp);
Parametry
iCurSet
Indeks do tablicy zestawu właściwości; zero, jeśli istnieje tylko jeden zestaw właściwości.
pDBProp
Identyfikator właściwości i nowa wartość w strukturze DBPROP .
Wartość zwracana
Standardowy HRESULT. Domyślna wartość zwracana jest S_OK.
Uwagi
Jeśli masz jakiekolwiek procedury weryfikacji, które chcesz uruchomić na wartości, której zamierzasz użyć do ustawienia właściwości, należy zastąpić tę funkcję. Można na przykład zweryfikować DBPROP_AUTH_PASSWORD względem tabeli haseł, aby określić prawidłową wartość.
CUtlProps::OnInterfaceRequested
Obsługuje żądania opcjonalnego interfejsu, gdy użytkownik wywołuje metodę w jednym z interfejsów tworzenia obiektu.
Składnia
virtual HRESULT CUtlPropsBase::OnInterfaceRequested(REFIID riid);
Parametry
riid
[in] Identyfikator IID żądanego interfejsu. Aby uzyskać więcej informacji, zobacz opis parametru ICommand::Execute
riid w dokumentacji programisty OLE DB (w zestawie SDK MDAC).
Uwagi
OnInterfaceRequested
obsługuje żądania konsumentów dla opcjonalnego interfejsu, gdy użytkownik wywołuje metodę w jednym z interfejsów tworzenia obiektu (takich jak IDBCreateSession
, IDBCreateCommand
, IOpenRowset
lub ICommand
). Ustawia odpowiednią właściwość OLE DB dla żądanego interfejsu. Jeśli na przykład użytkownik żąda IID_IRowsetLocate
, OnInterfaceRequested
ustawia DBPROP_IRowsetLocate
interfejs. W ten sposób zachowuje prawidłowy stan podczas tworzenia zestawu wierszy.
Ta metoda jest wywoływana, gdy użytkownik wywołuje IOpenRowset::OpenRowset
metodę lub ICommand::Execute
.
Jeśli użytkownik otworzy obiekt i zażąda opcjonalnego interfejsu, dostawca powinien ustawić właściwość skojarzona z tym interfejsem na VARIANT_TRUE. Aby zezwolić na przetwarzanie specyficzne dla właściwości, OnInterfaceRequested
jest wywoływana przed wywołaniem metody dostawcy Execute
. Domyślnie OnInterfaceRequested
obsługuje następujące interfejsy:
IRowsetLocate
IRowsetChange
IRowsetUpdate
IConnectionPointContainer
IRowsetScroll
Jeśli chcesz obsługiwać inne interfejsy, przesłoń tę funkcję w źródle danych, sesji, poleceniu lub zestawie wierszy do przetwarzania funkcji. Przesłonięcia powinny przechodzić przez interfejsy normalnych właściwości set/get, aby upewnić się, że ustawienie właściwości ustawia również wszystkie właściwości łańcuchowe (zobacz OnPropertyChanged).
CUtlProps::OnPropertyChanged
Wywoływana po ustawieniu właściwości do obsługi właściwości łańcuchowych.
Składnia
virtual HRESULT OnPropertyChanged(ULONG /* iCurSet */,
DBPROP* pDBProp);
Parametry
iCurSet
Indeks do tablicy zestawu właściwości; zero, jeśli istnieje tylko jeden zestaw właściwości.
pDBProp
Identyfikator właściwości i nowa wartość w strukturze DBPROP .
Wartość zwracana
Standardowy HRESULT. Domyślna wartość zwracana jest S_OK.
Uwagi
Jeśli chcesz obsługiwać właściwości łańcuchowe, takie jak zakładki lub aktualizacje, których wartości są zależne od wartości innej właściwości, należy zastąpić tę funkcję.
Przykład
W tej funkcji użytkownik pobiera identyfikator właściwości z parametru DBPROP*
. Teraz można porównać identyfikator z właściwością do łańcucha. Po znalezieniu właściwości jest wywoływana z właściwością , SetProperties
która zostanie teraz ustawiona w połączeniu z inną właściwością. W takim przypadku, jeśli zostanie uzyskana DBPROP_IRowsetLocate
właściwość , DBPROP_LITERALBOOKMARKS
lub DBPROP_ORDEREDBOOKMARKS
, można ustawić DBPROP_BOOKMARKS
właściwość .
HRESULT OnPropertyChanged(ULONG /*iCurSet*/, DBPROP* pDBProp)
{
ATLASSERT(pDBProp != NULL);
DWORD dwPropertyID = pDBProp->dwPropertyID;
if (dwPropertyID == DBPROP_IRowsetLocate ||
dwPropertyID == DBPROP_LITERALBOOKMARKS ||
dwPropertyID == DBPROP_ORDEREDBOOKMARKS)
{
CComVariant var = pDBProp->vValue;
if (var.boolVal == VARIANT_TRUE)
{
// Set the bookmarks property as these are chained
CComVariant bookVar(true);
CDBPropSet set(DBPROPSET_ROWSET);
set.AddProperty(DBPROP_BOOKMARKS, bookVar);
return SetProperties(1, &set);
}
}
return S_OK;
}
CUtlProps::SetPropValue
Ustawia właściwość w zestawie właściwości.
Składnia
HRESULT SetPropValue(const GUID* pguidPropSet,
DBPROPID dwPropId,
VARIANT* pvValue);
Parametry
pguidPropSet
[in] Identyfikator GUID zestawu propset.
dwPropId
[in] Indeks właściwości.
pvValue
[in] Wskaźnik do wariantu zawierającego nową wartość właściwości.
Wartość zwracana
Failure
w przypadku awarii i S_OK, jeśli się powiedzie.
Zobacz też
Szablony dostawców OLE DB
Architektura szablonu dostawcy OLE DB