Макросы и глобальные функции для шаблонов потребителей OLE DB
Шаблоны потребителей OLE DB включают следующие макросы и глобальные функции:
Глобальные функции
Имя | Описание |
---|---|
AtlTraceErrorRecords | Дамп сведений об ошибке OLE DB на устройство дампа, если возвращается ошибка. |
Макросы сопоставления accessor
Имя | Описание |
---|---|
BEGIN_ACCESSOR | Помечает начало записи метода доступа. |
BEGIN_ACCESSOR_MAP | Отмечает начало карты записей метода доступа. |
END_ACCESSOR | Помечает конец записи метода доступа. |
END_ACCESSOR_MAP | Помечает конец записей карты доступа. |
Макросы сопоставления столбцов
Имя | Описание |
---|---|
BEGIN_COLUMN_MAP | Помечает начало записей карты столбцов в классе записей пользователя. |
BLOB_ENTRY | Используется для привязки двоичного большого объекта (BLOB). |
BLOB_ENTRY_LENGTH | Сообщает длину столбца данных BLOB. |
BLOB_ENTRY_LENGTH_STATUS | Сообщает длину и состояние столбца данных BLOB. |
BLOB_ENTRY_STATUS | Сообщает о состоянии столбца данных BLOB. |
BLOB_NAME | Используется для привязки двоичного большого объекта по имени столбца. |
BLOB_NAME_LENGTH | Сообщает длину столбца данных BLOB. |
BLOB_NAME_LENGTH_STATUS | Сообщает длину и состояние столбца данных BLOB. |
BLOB_NAME_STATUS | Сообщает о состоянии столбца данных BLOB. |
BOOKMARK_ENTRY | Представляет запись закладки в наборе строк. Запись закладки — это специальный тип записи столбца. |
COLUMN_ENTRY | Представляет привязку к определенному столбцу в базе данных. |
COLUMN_ENTRY_EX | Представляет привязку к конкретному столбцу в базе данных. Поддерживает параметры типа, длины, точности, масштабирования и состояния. |
COLUMN_ENTRY_LENGTH | Представляет привязку к конкретному столбцу в базе данных. Поддерживает переменную длины. |
COLUMN_ENTRY_LENGTH_STATUS | Представляет привязку к конкретному столбцу в базе данных. Поддерживает параметры состояния и длины . |
COLUMN_ENTRY_PS | Представляет привязку к конкретному столбцу в базе данных. Поддерживает параметры точности и масштабирования . |
COLUMN_ENTRY_PS_LENGTH | Представляет привязку к конкретному столбцу в базе данных. Поддерживает переменную длины, точность и масштабируемые параметры. |
COLUMN_ENTRY_PS_LENGTH_STATUS | Представляет привязку к конкретному столбцу в базе данных. Поддерживает переменные состояния и длины , точность и параметры масштабирования . |
COLUMN_ENTRY_PS_STATUS | Представляет привязку к конкретному столбцу в базе данных. Поддерживает переменную состояния, точность и параметры масштабирования. |
COLUMN_ENTRY_STATUS | Представляет привязку к конкретному столбцу в базе данных. Поддерживает переменную состояния. |
COLUMN_ENTRY_TYPE | Представляет привязку к определенному столбцу в базе данных. Поддерживает параметр типа . |
COLUMN_ENTRY_TYPE_SIZE | Представляет привязку к конкретному столбцу в базе данных. Поддерживает параметры типа и размера . |
COLUMN_NAME | Представляет привязку к определенному столбцу в базе данных по имени. |
COLUMN_NAME_EX | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию типа данных, размера, точности, масштаба, длины столбца и состояния столбца. |
COLUMN_NAME_LENGTH | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию длины столбца. |
COLUMN_NAME_LENGTH_STATUS | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию длины и состояния столбца. |
COLUMN_NAME_PS | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию точности и масштабирования. |
COLUMN_NAME_PS_LENGTH | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию точности, масштабирования и длины столбца. |
COLUMN_NAME_PS_LENGTH_STATUS | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию точности, масштабирования, длины столбца и состояния столбца. |
COLUMN_NAME_PS_STATUS | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию состояния точности, масштабирования и столбца. |
COLUMN_NAME_STATUS | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию состояния столбца. |
COLUMN_NAME_TYPE | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию типа данных. |
COLUMN_NAME_TYPE_PS | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию типа данных, точности и масштабирования. |
COLUMN_NAME_TYPE_SIZE | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию типа данных и размера. |
COLUMN_NAME_TYPE_STATUS | Представляет привязку к определенному столбцу в базе данных по имени. Поддерживает спецификацию типа данных и состояния столбца. |
END_COLUMN_MAP | Помечает конец записей карты столбцов. |
Макросы команд
Имя | Описание |
---|---|
DEFINE_COMMAND | Указывает команду, которая будет использоваться для создания набора строк при использовании класса CCommand . Принимает только типы строк, соответствующие указанному типу приложения (ANSI или Юникоду). Рекомендуется использовать DEFINE_COMMAND_EX вместо DEFINE_COMMAND. |
DEFINE_COMMAND_EX | Указывает команду, которая будет использоваться для создания набора строк при использовании класса CCommand . Поддерживает приложения ANSI и Юникод. |
Макросы сопоставления параметров
Имя | Описание |
---|---|
BEGIN_PARAM_MAP | Помечает начало записей карты параметров в классе записей пользователя. |
END_PARAM_MAP | Помечает конец записей карты параметров. |
SET_PARAM_TYPE | Указывает COLUMN_ENTRY макросы, которые соответствуют макросу SET_PARAM_TYPE в качестве входных, выходных данных или выходных данных. |
AtlTraceErrorRecords
Дамп сведений об ошибке OLE DB на устройство дампа, если возвращается ошибка.
Синтаксис
inline void AtlTraceErrorRecords(HRESULT hrErr = S_OK);
Параметры
герр
[in] Функция HRESULT, возвращаемая функцией-членом шаблона потребителя OLE DB.
Замечания
Если hErr не S_OK, AtlTraceErrorRecords
дампает сведения об ошибке OLE DB на устройство дампа ( вкладка отладки окна вывода или файла). Сведения об записи ошибок, полученные от поставщика, включают номер строки, источник, описание, файл справки, контекст и GUID для каждой записи записи об ошибках. AtlTraceErrorRecords
сбрасывает эти сведения только в отладочных сборках. В сборках выпуска это пустая заглушка, оптимизированная для работы. Дополнительные сведения см. в разделе "Класс CDBErrorInfo".
BEGIN_ACCESSOR
Помечает начало записи метода доступа.
Синтаксис
BEGIN_ACCESSOR(num, bAuto)
Параметры
num
[in] Число смещений от нуля для метода доступа в этой карте доступа.
bAuto
[in] Указывает, является ли этот метод доступа автоматическим доступом или ручным методом доступа. Если метод доступа является автоматическим; если true
false
метод доступа вручную. Автоматический метод доступа означает, что данные извлекается для операций перемещения.
Замечания
В случае нескольких методов доступа в наборе строк необходимо указать BEGIN_ACCESSOR_MAP и использовать макрос BEGIN_ACCESSOR для каждого отдельного метода доступа. Макрос BEGIN_ACCESSOR завершен с помощью макроса END_ACCESSOR. Макрос BEGIN_ACCESSOR_MAP завершен с помощью макроса END_ACCESSOR_MAP.
Пример
BEGIN_ACCESSOR_MAP
Отмечает начало карты записей метода доступа.
Синтаксис
BEGIN_ACCESSOR_MAP(x, num)
Параметры
x
[входные данные] Имя класса записей пользователя.
num
[входные данные] Число методов доступа в этой карте метода доступа.
Замечания
В случае нескольких методов доступа в наборе строк необходимо указать BEGIN_ACCESSOR_MAP в начале и использовать макрос BEGIN_ACCESSOR для каждого отдельного метода доступа. Макрос BEGIN_ACCESSOR завершен с помощью макроса END_ACCESSOR. Карта доступа завершена с помощью макроса END_ACCESSOR_MAP.
Если в записи пользователя имеется только один метод доступа, используйте макрос BEGIN_COLUMN_MAP.
Пример
class CArtistsAccessor
{
public:
// Data Elements
TCHAR m_szFirstName[21];
TCHAR m_szLastName[31];
short m_nAge;
// Output binding map
BEGIN_ACCESSOR_MAP(CArtistsAccessor, 2)
BEGIN_ACCESSOR(0, true)
COLUMN_ENTRY(1, m_szFirstName)
COLUMN_ENTRY(2, m_szLastName)
END_ACCESSOR()
BEGIN_ACCESSOR(1, false) // Not an auto accessor
COLUMN_ENTRY(3, m_nAge)
END_ACCESSOR()
END_ACCESSOR_MAP()
HRESULT OpenDataSource()
{
CDataSource _db;
_db.Open();
return m_session.Open(_db);
}
void CloseDataSource()
{
m_session.Close();
}
CSession m_session;
DEFINE_COMMAND_EX(CArtistsAccessor, L" \
SELECT \
FirstName, \
LastName, \
Age \
FROM Artists")
};
END_ACCESSOR
Помечает конец записи метода доступа.
Синтаксис
END_ACCESSOR()
Замечания
Для нескольких методов доступа в наборе строк необходимо указать BEGIN_ACCESSOR_MAP и использовать макрос BEGIN_ACCESSOR для каждого отдельного метода доступа. Макрос BEGIN_ACCESSOR завершен с помощью макроса END_ACCESSOR. Макрос BEGIN_ACCESSOR_MAP завершен с помощью макроса END_ACCESSOR_MAP.
Пример
END_ACCESSOR_MAP
Помечает конец записей карты доступа.
Синтаксис
END_ACCESSOR_MAP()
Замечания
Для нескольких методов доступа в наборе строк необходимо указать BEGIN_ACCESSOR_MAP и использовать макрос BEGIN_ACCESSOR для каждого отдельного метода доступа. Макрос BEGIN_ACCESSOR завершен с помощью макроса END_ACCESSOR. Макрос BEGIN_ACCESSOR_MAP завершен с помощью макроса END_ACCESSOR_MAP.
Пример
BEGIN_COLUMN_MAP
Отмечает начало карты записей столбцов.
Синтаксис
BEGIN_COLUMN_MAP(x)
Параметры
x
[входные данные] Имя класса записей пользователя, производного от CAccessor
.
Замечания
Этот макрос используется при наличии одного метода доступа в наборе строк. При наличии нескольких методов доступа в наборе строк, используйте BEGIN_ACCESSOR_MAP.
Макрос BEGIN_COLUMN_MAP завершен с помощью макроса END_COLUMN_MAP. Этот макрос используется, если имеется только один метод доступа, необходимый для записи пользователя.
Столбцы соответствуют полям в наборе строк, который нужно привязать.
Пример
Ниже приведен пример карты столбцов и параметров.
BLOB_ENTRY
Используется с BEGIN_COLUMN_MAP и END_COLUMN_MAP привязки двоичного большого объекта (BLOB).
Синтаксис
BLOB_ENTRY(nOrdinal, IID, flags, data)
Параметры
nOrdinal
[in] Номер столбца.
IID
[in] GUID интерфейса, например IDD_ISequentialStream
, используемый для извлечения BLOB-объекта.
flags
[in] Флаги режима хранения, определенные моделью структурированного хранилища OLE (например, STGM_READ
).
data
[in] Соответствующий элемент данных в записи пользователя.
Пример
Узнайте, как получить BLOB-объект?
BLOB_ENTRY_LENGTH
Используется с BEGIN_COLUMN_MAP и END_COLUMN_MAP привязки двоичного большого объекта (BLOB). Аналогично BLOB_ENTRY, за исключением того, что этот макрос также получает длину в байтах столбца BLOB.
Синтаксис
BLOB_ENTRY_LENGTH(nOrdinal, IID, flags, data, length)
Параметры
nOrdinal
[in] Номер столбца.
IID
[in] GUID интерфейса, например IDD_ISequentialStream
, используемый для извлечения BLOB-объекта.
flags
[in] Флаги режима хранения, определенные моделью структурированного хранилища OLE (например, STGM_READ
).
data
[in] Соответствующий элемент данных в записи пользователя.
length
[out] Длина (фактическая) в байтах столбца BLOB.
Пример
Узнайте, как получить BLOB-объект?
BLOB_ENTRY_LENGTH_STATUS
Используется с BEGIN_COLUMN_MAP и END_COLUMN_MAP привязки двоичного большого объекта (BLOB). Аналогично BLOB_ENTRY, за исключением того, что этот макрос также получает длину и состояние столбца BLOB.
Синтаксис
BLOB_ENTRY_LENGTH_STATUS(
nOrdinal,
IID,
flags,
data,
length,
status )
Параметры
nOrdinal
[in] Номер столбца.
IID
[in] GUID интерфейса, например IDD_ISequentialStream
, используемый для извлечения BLOB-объекта.
flags
[in] Флаги режима хранения, определенные моделью структурированного хранилища OLE (например, STGM_READ
).
data
[in] Соответствующий элемент данных в записи пользователя.
length
[out] Длина (фактическая) в байтах столбца BLOB.
состояние
[out] Состояние столбца данных BLOB.
Пример
Узнайте, как получить BLOB-объект?
BLOB_ENTRY_STATUS
Используется с BEGIN_COLUMN_MAP или BEGIN_ACCESSOR_MAP для привязки двоичного большого объекта (BLOB). Аналогично BLOB_ENTRY, за исключением того, что этот макрос также получает состояние столбца BLOB.
Синтаксис
BLOB_ENTRY_STATUS(nOrdinal, IID, flags, data, status)
Параметры
nOrdinal
[in] Номер столбца.
IID
[in] GUID интерфейса, например IDD_ISequentialStream
, используемый для извлечения BLOB-объекта.
flags
[in] Флаги режима хранения, определенные моделью структурированного хранилища OLE (например, STGM_READ
).
data
[in] Соответствующий элемент данных в записи пользователя.
состояние
[out] Состояние поля BLOB.
Пример
Узнайте, как получить BLOB-объект?
BLOB_NAME
Используется с BEGIN_COLUMN_MAP и END_COLUMN_MAP привязки двоичного большого объекта (BLOB). Аналогично BLOB_ENTRY, за исключением того, что этот макрос принимает имя столбца вместо номера столбца.
Синтаксис
BLOB_NAME(pszName, IID, flags, data )
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
IID
[in] GUID интерфейса, например IDD_ISequentialStream
, используемый для извлечения BLOB-объекта.
flags
[in] Флаги режима хранения, определенные моделью структурированного хранилища OLE (например, STGM_READ
).
data
[in] Соответствующий элемент данных в записи пользователя.
Пример
Узнайте, как получить BLOB-объект?
BLOB_NAME_LENGTH
Используется с BEGIN_COLUMN_MAP и END_COLUMN_MAP привязки двоичного большого объекта (BLOB). Аналогично BLOB_NAME, за исключением того, что этот макрос также получает длину в байтах столбца данных BLOB.
Синтаксис
BLOB_NAME_LENGTH(pszName, IID, flags, data, length )
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
IID
[in] GUID интерфейса, например IDD_ISequentialStream
, используемый для извлечения BLOB-объекта.
flags
[in] Флаги режима хранения, определенные моделью структурированного хранилища OLE (например, STGM_READ
).
data
[in] Соответствующий элемент данных в записи пользователя.
length
[out] Длина (фактическая) в байтах столбца BLOB.
BLOB_NAME_LENGTH_STATUS
Используется с BEGIN_COLUMN_MAP и END_COLUMN_MAP привязки двоичного большого объекта (BLOB). Аналогично BLOB_NAME, за исключением того, что этот макрос также получает длину и состояние столбца данных BLOB.
Синтаксис
BLOB_NAME_LENGTH_STATUS(pszName, IID, flags, data, length, status )
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
IID
[in] GUID интерфейса, например IDD_ISequentialStream
, используемый для извлечения BLOB-объекта.
flags
[in] Флаги режима хранения, определенные моделью структурированного хранилища OLE (например, STGM_READ
).
data
[in] Соответствующий элемент данных в записи пользователя.
length
[out] Длина (фактическая) в байтах столбца BLOB.
состояние
[out] Состояние поля BLOB.
BLOB_NAME_STATUS
Используется с BEGIN_COLUMN_MAP и END_COLUMN_MAP привязки двоичного большого объекта (BLOB). Аналогично BLOB_NAME, за исключением того, что этот макрос также получает состояние столбца данных BLOB.
Синтаксис
BLOB_NAME_STATUS(pszName, IID, flags, data, status )
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
IID
[in] GUID интерфейса, например IDD_ISequentialStream
, используемый для извлечения BLOB-объекта.
flags
[in] Флаги режима хранения, определенные моделью структурированного хранилища OLE (например, STGM_READ
).
data
[in] Соответствующий элемент данных в записи пользователя.
состояние
[out] Состояние поля BLOB.
BOOKMARK_ENTRY
Привязывает столбец закладки.
Синтаксис
BOOKMARK_ENTRY(variable)
Параметры
variable
[in] Переменная, привязанная к столбцу закладки.
Пример
class CArtistsBookmark
{
public:
// Data Elements
CBookmark<4> m_bookmark;
short m_nAge;
TCHAR m_szFirstName[21];
TCHAR m_szLastName[31];
// Output binding map
BEGIN_COLUMN_MAP(CArtistsBookmark)
BOOKMARK_ENTRY(m_bookmark)
COLUMN_ENTRY(1, m_nAge)
COLUMN_ENTRY(2, m_szFirstName)
COLUMN_ENTRY(3, m_szLastName)
END_COLUMN_MAP()
void GetRowsetProperties(CDBPropSet* pPropSet)
{
pPropSet->AddProperty(DBPROP_BOOKMARKS, true);
}
HRESULT OpenDataSource()
{
CDataSource _db;
_db.Open();
return m_session.Open(_db);
}
void CloseDataSource()
{
m_session.Close();
}
CSession m_session;
DEFINE_COMMAND_EX(CArtistsBookmark, L" \
SELECT \
Age, \
FirstName, \
LastName \
FROM Artists")
};
Дополнительные сведения см. в разделе "Использование закладок и класса CBookmark".
COLUMN_ENTRY
Представляет привязку набора строк к конкретному столбцу в наборе строк.
Синтаксис
COLUMN_ENTRY(nOrdinal, data)
Параметры
См. раздел DBBINDING в справочнике программиста OLE DB.
nOrdinal
[in] Номер столбца.
data
[in] Соответствующий элемент данных в записи пользователя.
Замечания
Макрос COLUMN_ENTRY используется в следующих местах:
Пример
Примеры в разделах макросов, BEGIN_COLUMN_MAP и BEGIN_ACCESSOR_MAP.
COLUMN_ENTRY_EX
Представляет привязку набора строк к конкретному столбцу в базе данных.
Синтаксис
COLUMN_ENTRY_EX(nOrdinal, wType, nLength, nPrecision, nScale, data, length, status)
Параметры
См. раздел DBBINDING в справочнике программиста OLE DB.
nOrdinal
[in] Номер столбца.
wType
[in] Тип данных.
nLength
[in] Размер данных в байтах.
nPrecision
[in] Максимальная точность использования при получении данных и wTypeDBTYPE_NUMERIC
. В противном случае этот параметр игнорируется.
nScale
[in] Масштаб, используемый при получении данных и wType, или DBTYPE_DECIMAL
DBTYPE_NUMERIC
.
data
[in] Соответствующий элемент данных в записи пользователя.
length
[in] Переменная, привязанная к длине столбца.
состояние
[in] Переменная, привязанная к состоянию столбца.
Замечания
Макрос COLUMN_ENTRY_EX используется в следующих местах:
Пример
См . BOOKMARK_ENTRY.
COLUMN_ENTRY_LENGTH
Представляет привязку набора строк к конкретному столбцу в базе данных.
Синтаксис
COLUMN_ENTRY_LENGTH(nOrdinal, data, length)
Параметры
См. раздел DBBINDING в справочнике программиста OLE DB.
nOrdinal
[in] Номер столбца, начиная с одного. Закладка соответствует нулю столбца.
data
[in] Соответствующий элемент данных в записи пользователя.
length
[in] Переменная, привязанная к длине столбца.
Замечания
Этот макрос поддерживает переменную длины . Он используется в следующих местах:
COLUMN_ENTRY_LENGTH_STATUS
Представляет привязку набора строк к конкретному столбцу в базе данных.
Синтаксис
COLUMN_ENTRY_LENGTH_STATUS(nOrdinal, data, length, status)
Параметры
См. раздел DBBINDING в справочнике программиста OLE DB.
nOrdinal
[in] Номер столбца.
data
[in] Соответствующий элемент данных в записи пользователя.
length
[in] Переменная, привязанная к длине столбца.
состояние
[in] Переменная, привязанная к состоянию столбца.
Замечания
Используйте этот макрос, если требуется поддерживать переменные длины и состояния. Он используется в следующих местах:
COLUMN_ENTRY_PS
Представляет привязку набора строк к конкретному столбцу в наборе строк.
Синтаксис
COLUMN_ENTRY_PS(nOrdinal, nPrecision, nScale, data)
Параметры
См. раздел DBBINDING в справочнике программиста OLE DB.
nOrdinal
[in] Номер столбца.
nPrecision
[in] Максимальная точность столбца, который требуется привязать.
nScale
[in] Масштаб столбца, который требуется привязать.
data
[in] Соответствующий элемент данных в записи пользователя.
Замечания
Позволяет указать точность и масштаб столбца, который требуется привязать. Он используется в следующих местах:
COLUMN_ENTRY_PS_LENGTH
Представляет привязку набора строк к конкретному столбцу в базе данных.
Синтаксис
COLUMN_ENTRY_PS_LENGTH(nOrdinal, nPrecision, nScale, data, length)
Параметры
См. раздел DBBINDING в справочнике программиста OLE DB.
nOrdinal
[in] Номер столбца, начиная с одного. Закладка соответствует нулю столбца.
nPrecision
[in] Максимальная точность столбца, который требуется привязать.
nScale
[in] Масштаб столбца, который требуется привязать.
data
[in] Соответствующий элемент данных в записи пользователя.
length
[in] Переменная, привязанная к длине столбца.
Замечания
Позволяет указать точность и масштаб столбца, который требуется привязать. Этот макрос поддерживает переменную длины . Он используется в следующих местах:
COLUMN_ENTRY_PS_LENGTH_STATUS
Представляет привязку набора строк к конкретному столбцу в базе данных.
Синтаксис
COLUMN_ENTRY_PS_LENGTH_STATUS(nOrdinal, nPrecision, nScale, data, length, status)
Параметры
См. раздел DBBINDING в справочнике программиста OLE DB.
nOrdinal
[in] Номер столбца.
nPrecision
[in] Максимальная точность столбца, который требуется привязать.
nScale
[in] Масштаб столбца, который требуется привязать.
data
[in] Соответствующий элемент данных в записи пользователя.
length
[in] Переменная, привязанная к длине столбца.
состояние
[in] Переменная, привязанная к состоянию столбца.
Замечания
Позволяет указать точность и масштаб столбца, который требуется привязать. Используйте этот макрос, если требуется поддерживать переменные длины и состояния. Он используется в следующих местах:
COLUMN_ENTRY_PS_STATUS
Представляет привязку набора строк к конкретному столбцу в базе данных.
Синтаксис
COLUMN_ENTRY_PS_STATUS(nOrdinal, nPrecision, nScale, data, status)
Параметры
См. раздел DBBINDING в справочнике программиста OLE DB.
nOrdinal
[in] Номер столбца.
nPrecision
[in] Максимальная точность столбца, который требуется привязать.
nScale
[in] Масштаб столбца, который требуется привязать.
data
[in] Соответствующий элемент данных в записи пользователя.
состояние
[in] Переменная, привязанная к состоянию столбца.
Замечания
Позволяет указать точность и масштаб столбца, который требуется привязать. Этот макрос поддерживает переменную состояния . Он используется в следующих местах:
COLUMN_ENTRY_STATUS
Представляет привязку набора строк к конкретному столбцу в базе данных.
Синтаксис
COLUMN_ENTRY_STATUS(nOrdinal, data, status)
Параметры
См. раздел DBBINDING в справочнике программиста OLE DB.
nOrdinal
[in] Номер столбца.
data
[in] Соответствующий элемент данных в записи пользователя.
состояние
[in] Переменная, привязанная к состоянию столбца.
Замечания
Этот макрос поддерживает переменную состояния . Он используется в следующих местах:
COLUMN_ENTRY_TYPE
Представляет привязку к конкретному столбцу в базе данных. Поддерживает параметр типа .
Синтаксис
COLUMN_ENTRY_TYPE (nOrdinal, wType, data)
Параметры
nOrdinal
[in] Номер столбца.
wType
[in] Тип данных записи столбца.
data
[in] Соответствующий элемент данных в записи пользователя.
Замечания
Этот макрос является специализированным вариантом макроса COLUMN_ENTRY , который предоставляет средства указания типа данных.
COLUMN_ENTRY_TYPE_SIZE
Представляет привязку к конкретному столбцу в базе данных. Поддерживает параметры типа и размера .
Синтаксис
COLUMN_ENTRY_TYPE_SIZE(nOrdinal, wType, nLength, data)
Параметры
nOrdinal
[in] Номер столбца.
wType
[in] Тип данных записи столбца.
nLength
[in] Размер записи столбца в байтах.
data
[in] Соответствующий элемент данных в записи пользователя.
Замечания
Этот макрос является специализированным вариантом макроса COLUMN_ENTRY , который предоставляет средства указания размера и типа данных.
COLUMN_NAME
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_ENTRY, за исключением того, что этот макрос принимает имя столбца вместо номера столбца.
Синтаксис
COLUMN_NAME(pszName, data)
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
data
[in] Соответствующий элемент данных в записи пользователя.
Замечания
Макросы COLUMN_NAME_* используются в том же месте, что и COLUMN_ENTRY:
COLUMN_NAME_EX
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает тип данных, размер, точность, масштаб, длину столбца и состояние столбца.
Синтаксис
COLUMN_NAME_EX(pszName, wType, nLength, nPrecision, nScale, data, length, status )
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
wType
[in] Тип данных.
nLength
[in] Размер данных в байтах.
nPrecision
[in] Максимальная точность использования при получении данных и wTypeDBTYPE_NUMERIC
. В противном случае этот параметр игнорируется.
nScale
[in] Масштаб, используемый при получении данных и wType, или DBTYPE_DECIMAL
DBTYPE_NUMERIC
.
data
[in] Соответствующий элемент данных в записи пользователя.
length
[in] Переменная, привязанная к длине столбца.
состояние
[in] Переменная, привязанная к состоянию столбца.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
COLUMN_NAME_LENGTH
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает длину столбца.
Синтаксис
COLUMN_NAME_LENGTH(pszName, data, length)
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
data
[in] Соответствующий элемент данных в записи пользователя.
length
[in] Переменная, привязанная к длине столбца.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
COLUMN_NAME_LENGTH_STATUS
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает состояние длины столбца и столбца.
Синтаксис
COLUMN_NAME_LENGTH_STATUS(pszName, data, length, status )
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
data
[in] Соответствующий элемент данных в записи пользователя.
length
[in] Переменная, привязанная к длине столбца.
состояние
[in] Переменная, привязанная к состоянию столбца.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
COLUMN_NAME_PS
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает точность и масштаб.
Синтаксис
COLUMN_NAME_PS(pszName, nPrecision, nScale, data )
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
nPrecision
[in] Максимальная точность столбца, который требуется привязать.
nScale
[in] Масштаб столбца, который требуется привязать.
data
[in] Соответствующий элемент данных в записи пользователя.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
COLUMN_NAME_PS_LENGTH
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает точность, масштаб и длину столбца.
Синтаксис
COLUMN_NAME_PS_LENGTH(pszName, nPrecision, nScale, data, length )
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
nPrecision
[in] Максимальная точность столбца, который требуется привязать.
nScale
[in] Масштаб столбца, который требуется привязать.
data
[in] Соответствующий элемент данных в записи пользователя.
length
[in] Переменная, привязанная к длине столбца.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
COLUMN_NAME_PS_LENGTH_STATUS
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает точность, масштаб, длину столбца и состояние столбца.
Синтаксис
COLUMN_NAME_PS_LENGTH_STATUS(pszName, nPrecision, nScale, data, length, status )
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
nPrecision
[in] Максимальная точность столбца, который требуется привязать.
nScale
[in] Масштаб столбца, который требуется привязать.
data
[in] Соответствующий элемент данных в записи пользователя.
length
[in] Переменная, привязанная к длине столбца.
состояние
[in] Переменная, привязанная к состоянию столбца.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
COLUMN_NAME_PS_STATUS
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает точность, масштаб и состояние столбца.
Синтаксис
COLUMN_NAME_PS_STATUS(pszName, nPrecision, nScale, data, status )
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
nPrecision
[in] Максимальная точность столбца, который требуется привязать.
nScale
[in] Масштаб столбца, который требуется привязать.
data
[in] Соответствующий элемент данных в записи пользователя.
состояние
[in] Переменная, привязанная к состоянию столбца.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
COLUMN_NAME_STATUS
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает состояние столбца.
Синтаксис
COLUMN_NAME_STATUS(pszName, data, status )
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
data
[in] Соответствующий элемент данных в записи пользователя.
состояние
[in] Переменная, привязанная к состоянию столбца.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
COLUMN_NAME_TYPE
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает тип данных.
Синтаксис
COLUMN_NAME_TYPE(pszName, wType, data)
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
wType
[in] Тип данных.
data
[in] Соответствующий элемент данных в записи пользователя.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
COLUMN_NAME_TYPE_PS
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает тип данных, точность и масштаб.
Синтаксис
COLUMN_NAME_TYPE_PS(pszName, wType, nPrecision, nScale, data)
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
wType
[in] Тип данных.
nPrecision
[in] Максимальная точность использования при получении данных и wTypeDBTYPE_NUMERIC
. В противном случае этот параметр игнорируется.
nScale
[in] Масштаб, используемый при получении данных и wType, или DBTYPE_DECIMAL
DBTYPE_NUMERIC
.
data
[in] Соответствующий элемент данных в записи пользователя.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
COLUMN_NAME_TYPE_SIZE
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает тип данных и размер.
Синтаксис
COLUMN_NAME_TYPE_SIZE(pszName, wType, nLength, data)
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
wType
[in] Тип данных.
nLength
[in] Размер данных в байтах.
data
[in] Соответствующий элемент данных в записи пользователя.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
COLUMN_NAME_TYPE_STATUS
Представляет привязку набора строк к конкретному столбцу в наборе строк. Аналогично COLUMN_NAME, за исключением того, что этот макрос также принимает состояние типа данных и столбца.
Синтаксис
COLUMN_NAME_TYPE_STATUS(pszName, wType, status, data)
Параметры
pszName
[in] Указатель на имя столбца. Имя должно быть строкой Юникода. Это можно сделать, поместив "L" перед именем, например: L"MyColumn"
wType
[in] Тип данных.
состояние
[in] Переменная, привязанная к состоянию столбца.
data
[in] Соответствующий элемент данных в записи пользователя.
Замечания
Сведения о том, где используются макросы COLUMN_NAME_*, см . в COLUMN_NAME .
END_COLUMN_MAP
Помечает конец записей карты столбцов.
Синтаксис
END_COLUMN_MAP()
Замечания
Он используется с одним методом доступа в наборе строк. Макрос BEGIN_COLUMN_MAP завершен с помощью макроса END_COLUMN_MAP.
Пример
DEFINE_COMMAND
Указывает команду, которая будет использоваться для создания набора строк при использовании класса CCommand . Принимает только типы строк, соответствующие указанному типу приложения (ANSI или Юникоду).
Примечание.
Рекомендуется использовать DEFINE_COMMAND_EX вместо DEFINE_COMMAND.
Синтаксис
DEFINE_COMMAND(x, szCommand)
Параметры
x
[in] Имя класса записи пользователя (команды).
szCommand
[in] Командная строка, которая будет использоваться для создания набора строк при использовании CCommand.
Замечания
Указанная командная строка будет использоваться в качестве значения по умолчанию, если не указывать текст команды в методе CCommand::Open .
Этот макрос принимает строки ANSI, если вы создаете приложение как ANSI или строки Юникода, если вы создаете приложение как Юникод. Рекомендуется использовать DEFINE_COMMAND_EX вместо DEFINE_COMMAND, так как прежнее принимает строки Юникода независимо от типа приложения ANSI или Юникода.
Пример
См . BOOKMARK_ENTRY.
DEFINE_COMMAND_EX
Указывает команду, которая будет использоваться для создания набора строк при использовании класса CCommand . Поддерживает приложения Юникода и ANSI.
Синтаксис
DEFINE_COMMAND_EX(x, wszCommand)
Параметры
x
[in] Имя класса записи пользователя (команды).
wszCommand
[in] Командная строка, которая будет использоваться для создания набора строк при использовании CCommand.
Замечания
Указанная командная строка будет использоваться в качестве значения по умолчанию, если не указывать текст команды в методе CCommand::Open .
Этот макрос принимает строки Юникода независимо от типа приложения. Этот макрос предпочтителен по сравнению с DEFINE_COMMAND , так как он поддерживает Юникод, а также приложения ANSI.
Пример
См . BOOKMARK_ENTRY.
BEGIN_PARAM_MAP
Помечает начало записей карты параметров.
Синтаксис
BEGIN_PARAM_MAP(x)
Параметры
x
[входные данные] Имя класса записей пользователя.
Замечания
Параметры используются командами.
Пример
Пример макроса BEGIN_COLUMN_MAP .
END_PARAM_MAP
Помечает конец записей карты параметров.
Синтаксис
END_PARAM_MAP()
Пример
Пример макроса BEGIN_PARAM_MAP .
SET_PARAM_TYPE
Указывает макросы COLUMN_ENTRY, которые соответствуют SET_PARAM_TYPE входным, выходным или выходным данным макроса.
Синтаксис
SET_PARAM_TYPE(type)
Параметры
type
[входные данные] Тип, задаваемый для параметра.
Замечания
Поставщики поддерживают только входные и выходные типы параметров, поддерживаемые в базовом источнике данных. Тип представляет собой сочетание одного или нескольких DBPARAMIO
значений (см . структуру DBBINDING в справочнике программиста OLE DB):
DBPARAMIO_NOTPARAM
Метод доступа не имеет параметров. Как правило, для этого значения в методах доступа к строкам необходимоeParamIO
напомнить пользователю, что параметры игнорируются.DBPARAMIO_INPUT
Входной параметр.DBPARAMIO_OUTPUT
Выходной параметр.DBPARAMIO_INPUT | DBPARAMIO_OUTPUT
Параметр является как входным, так и выходным параметром.
Пример
class CArtistsProperty
{
public:
short m_nReturn;
short m_nAge;
TCHAR m_szFirstName[21];
TCHAR m_szLastName[31];
BEGIN_PARAM_MAP(CArtistsProperty)
SET_PARAM_TYPE(DBPARAMIO_OUTPUT)
COLUMN_ENTRY(1, m_nReturn)
SET_PARAM_TYPE(DBPARAMIO_INPUT)
COLUMN_ENTRY(2, m_nAge)
END_PARAM_MAP()
BEGIN_COLUMN_MAP(CArtistsProperty)
COLUMN_ENTRY(1, m_szFirstName)
COLUMN_ENTRY(2, m_szLastName)
END_COLUMN_MAP()
HRESULT OpenDataSource()
{
CDataSource _db;
_db.Open();
return m_session.Open(_db);
}
void CloseDataSource()
{
m_session.Close();
}
CSession m_session;
DEFINE_COMMAND_EX(CArtistsProperty, L" \
{ ? = SELECT Age FROM Artists WHERE Age < ? }")
};
Требования
Заголовок: atldbcli.h
См. также
Макросы и глобальные функции для шаблонов объектов-получателей OLE DB
Шаблоны объекта-получателя OLE DB
Ссылка на шаблоны объекта-получателя OLE DB