Класс 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