Поделиться через


Класс CDynamicStringAccessor

Позволяет получить доступ к источнику данных, если у вас нет знаний о схеме базы данных (базовая структура базы данных).

Синтаксис

template< typename BaseType, DBTYPEENUM OleDbType >
class CDynamicStringAccessorT : public CDynamicAccessor

Требования

Заголовок: atldbcli.h

Участники

Методы

Имя Описание
GetString Извлекает указанные данные столбца в виде строки.
SetString Задает указанные данные столбца в виде строки.

Замечания

Хотя CDynamicAccessor запрашивает данные в собственном формате, сообщаемом поставщиком, запрашивает, CDynamicStringAccessor что поставщик извлекает все данные из хранилища данных в виде строковых данных. Это особенно полезно для простых задач, которые не требуют вычисления значений в хранилище данных, таких как отображение или печать содержимого хранилища данных.

Собственный тип данных столбцов в хранилище данных не имеет значения; Если поставщик может поддерживать преобразование данных, он будет предоставлять данные в строковом формате. Если поставщик не поддерживает преобразование из собственного типа данных в строку (которая не распространена), вызов запроса вернет значение успешного выполнения DB_S_ERRORSOCCURED, а состояние соответствующего столбца указывает на проблему преобразования с DBSTATUS_E_CANTCONVERTVALUE.

Используйте CDynamicStringAccessor методы для получения сведений о столбце. Эти сведения столбца используются для динамического создания метода доступа во время выполнения.

Сведения о столбце хранятся в буфере, созданном и управляемом этим классом. Получите данные из буфера с помощью GetString или сохраните его в буфере с помощью SetString.

Обсуждение и примеры использования классов динамического доступа см. в разделе "Использование динамических accessors".

CDynamicStringAccessor::GetString

Извлекает указанные данные столбца в виде строки.

Синтаксис

BaseType* GetString(DBORDINAL nColumn) const throw();

BaseType* GetString(const CHAR* pColumnName) const throw();

BaseType* GetString(const WCHAR* pColumnName) const throw();

Параметры

nColumn
[in] Номер столбца. Числа столбцов начинаются с 1. Значение 0 ссылается на столбец закладки, если таковой имеется.

pColumnName
[in] Указатель на символьную строку, содержащую имя столбца.

Возвращаемое значение

Указатель на строковое значение, полученное из указанного столбца. Значение имеет тип BaseType, который будет иметь значение CHAR или WCHAR в зависимости от того, определена ли _UNICODE. Возвращает значение NULL, если указанный столбец не найден.

Замечания

Вторая переопределение формы принимает имя столбца в виде строки ANSI. Третья переопределенная форма принимает имя столбца в виде строки Юникода.

CDynamicStringAccessor::SetString

Задает указанные данные столбца в виде строки.

Синтаксис

HRESULT SetString(DBORDINAL nColumn,
   BaseType* data) throw();

HRESULT SetString(const CHAR* pColumnName,
   BaseType* data) throw();

HRESULT SetString(const WCHAR* pColumnName,
   BaseType* data) throw();

Параметры

nColumn
[in] Номер столбца. Числа столбцов начинаются с 1. Специальное значение 0 относится к столбцу закладки, если таковой имеется.

pColumnName
[in] Указатель на символьную строку, содержащую имя столбца.

data
[in] Указатель на строковые данные, записываемые в указанный столбец.

Возвращаемое значение

Указатель на строковое значение, для которого необходимо задать указанный столбец. Значение имеет тип BaseType, который будет иметь значение CHAR или WCHAR в зависимости от того, определена ли _UNICODE.

Замечания

Вторая переопределенная форма принимает имя столбца в виде строки ANSI, а третья переопределенная форма принимает имя столбца в виде строки Юникода.

Если для _SECURE_ATL задано ненулевое значение, будет создан сбой утверждения среды выполнения, если входная строка данных превышает максимальную допустимую длину указанного столбца данных. В противном случае входная строка будет усечена, если она превышает максимальную допустимую длину.

См. также

Шаблоны объекта-получателя OLE DB
Ссылка на шаблоны объекта-получателя OLE DB
Класс CAccessor
Класс CDynamicParameterAccessor
Класс CManualAccessor
Класс CDynamicAccessor
Класс CDynamicStringAccessorA
Класс CDynamicStringAccessorW
Класс CXMLAccessor