CDynamicStringAccessor — Klasa
Umożliwia dostęp do źródła danych, gdy nie masz wiedzy na temat schematu bazy danych (podstawowej struktury bazy danych).
Składnia
template< typename BaseType, DBTYPEENUM OleDbType >
class CDynamicStringAccessorT : public CDynamicAccessor
Wymagania
Nagłówek: atldbcli.h
Elementy członkowskie
Metody
Nazwa/nazwisko | opis |
---|---|
GetString | Pobiera określone dane kolumny jako ciąg. |
SetString | Ustawia określone dane kolumny jako ciąg. |
Uwagi
Podczas gdy CDynamicAccessor żąda danych w formacie natywnym zgłoszonym przez dostawcę, żąda, CDynamicStringAccessor
aby dostawca pobierał wszystkie dane dostępne z magazynu danych jako dane ciągu. Jest to szczególnie przydatne w przypadku prostych zadań, które nie wymagają obliczania wartości w magazynie danych, takich jak wyświetlanie lub drukowanie zawartości magazynu danych.
Natywny typ danych kolumny w magazynie danych nie ma znaczenia; o ile dostawca może obsługiwać konwersję danych, dostarczy dane w formacie ciągu. Jeśli dostawca nie obsługuje konwersji z natywnego typu danych na ciąg (który nie jest typowy), wywołanie żądania zwróci wartość powodzenia DB_S_ERRORSOCCURED, a stan odpowiedniej kolumny wskaże problem z konwersją z DBSTATUS_E_CANTCONVERTVALUE.
Użyj CDynamicStringAccessor
metod, aby uzyskać informacje o kolumnie. Te informacje w kolumnie służą do dynamicznego tworzenia metody dostępu w czasie wykonywania.
Informacje o kolumnie są przechowywane w buforze utworzonym i zarządzanym przez tę klasę. Uzyskaj dane z buforu przy użyciu metody GetString lub zapisz je w buforze przy użyciu metody SetString.
Aby zapoznać się z omówieniem i przykładami używania dynamicznych klas dostępu, zobacz Using Dynamic Accessors (Używanie dynamicznych metod dostępu).
CDynamicStringAccessor::GetString
Pobiera określone dane kolumny jako ciąg.
Składnia
BaseType* GetString(DBORDINAL nColumn) const throw();
BaseType* GetString(const CHAR* pColumnName) const throw();
BaseType* GetString(const WCHAR* pColumnName) const throw();
Parametry
nKolumn
[in] Numer kolumny. Numery kolumn zaczynają się od 1. Wartość 0 odnosi się do kolumny zakładki, jeśli istnieje.
pColumnName
[in] Wskaźnik do ciągu znaków, który zawiera nazwę kolumny.
Wartość zwracana
Wskaźnik do wartości ciągu pobranej z określonej kolumny. Wartość jest typu BaseType
, który będzie char lub WCHAR w zależności od tego, czy _UNICODE jest zdefiniowany, czy nie. Zwraca wartość NULL, jeśli określona kolumna nie zostanie znaleziona.
Uwagi
Drugi formularz zastąpienia przyjmuje nazwę kolumny jako ciąg ANSI. Trzeci formularz zastąpienia przyjmuje nazwę kolumny jako ciąg Unicode.
CDynamicStringAccessor::SetString
Ustawia określone dane kolumny jako ciąg.
Składnia
HRESULT SetString(DBORDINAL nColumn,
BaseType* data) throw();
HRESULT SetString(const CHAR* pColumnName,
BaseType* data) throw();
HRESULT SetString(const WCHAR* pColumnName,
BaseType* data) throw();
Parametry
nKolumn
[in] Numer kolumny. Numery kolumn zaczynają się od 1. Wartość specjalna 0 odnosi się do kolumny zakładki, jeśli istnieje.
pColumnName
[in] Wskaźnik do ciągu znaków, który zawiera nazwę kolumny.
data
[in] Wskaźnik do danych ciągu do zapisania w określonej kolumnie.
Wartość zwracana
Wskaźnik do wartości ciągu, do której ma być ustawiona określona kolumna. Wartość jest typu BaseType
, który będzie char lub WCHAR w zależności od tego, czy _UNICODE jest zdefiniowany, czy nie.
Uwagi
Drugi formularz zastąpienia przyjmuje nazwę kolumny jako ciąg ANSI, a trzeci formularz zastąpienia przyjmuje nazwę kolumny jako ciąg Unicode.
Jeśli _SECURE_ATL jest zdefiniowana jako niezerowa wartość, zostanie wygenerowana awaria asercji środowiska uruchomieniowego, jeśli ciąg danych wejściowych jest dłuższy niż maksymalna dozwolona długość kolumny danych, do których odwołuje się odwołanie. W przeciwnym razie ciąg wejściowy zostanie obcięty, jeśli jest dłuższy niż maksymalna dozwolona długość.
Zobacz też
Szablony konsumentów OLE DB
Szablony konsumentów OLE DB — dokumentacja
CAccessor, klasa
CDynamicParameterAccessor, klasa
CManualAccessor, klasa
CDynamicAccessor, klasa
CDynamicStringAccessorA, klasa
CDynamicStringAccessorW, klasa
CXMLAccessor, klasa