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

Członkowie

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.

Danych
[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