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


Объекты OLE DB, используемые распределенными запросами

В следующей таблице показаны объекты и интерфейсы OLE DB, используемые распределенными запросами на языке Transact-SQL. Чтобы поставщик OLE DB можно было применять в распределенных запросах на языке Transact-SQL, он должен поддерживать хотя бы минимальный набор объектов и интерфейсов. Эти объекты и интерфейсы отмечены в столбце Требуется таблицы словом Да. Объекты и интерфейсы, которым соответствует значение Нет в столбце Требуется, требуются только для поддержки расширенных возможностей распределенных запросов. Если интерфейс не поддерживается поставщиком, то соответствующие возможности языка Transact-SQL также не поддерживаются. Например, если интерфейсы IRowsetLocate и IRowsetChange не поддерживаются, то инструкции UPDATE или DELETE не будут работать в удаленных таблицах.

Объект

Интерфейс

Требуется

Описание

Источник данных

IDBInitialize

Да

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

IDBCreateSession

Да

Создает объект DB Session.

IDBProperties

Да

Получает сведения о совместимости поставщика и наборов свойств инициализации.

IDBInfo

Нет

Получает сведения о синтаксисе SQL, который поддерживается поставщиком.

DB Session

IDBSchemaRowset

Нет

Получает метаданные таблицы и столбца. Необходимы наборы строк TABLES и COLUMNS. Кроме того, применяются другие наборы строк, если они доступны: TABLES_INFO, CATALOGS, INDEXES, STATISTICS, TABLE_STATISTICS, VIEWS, PRIMARY_KEYS, TABLE_PRIVILEGES и COLUMN_PRIVILEGES.

IOpenRowset

Да

Открывает набор строк в таблице, индексе или гистограмме.

IGetDataSource

Да

Возвращает в источник данных объект из объекта DB Session.

IDBCreateCommand

Нет

Создает объект Command (запрос).

ITransactionLocal

Нет

Запускает транзакцию на поставщике.

ITransactionJoin

Нет

Применяется для поддержки распределенных транзакций. Если этот интерфейс не поддерживается, то обновления удаленного поставщика в пользовательской транзакции не разрешены.

Набор строк (в таблице)

IRowset

Да

Просматривает строки.

IAccessor

Да

Выполняет привязку к столбцам в наборе строк.

IColumnsInfo

Да

Получает сведения о столбцах в наборе строк.

IRowsetInfo

Да

Получает сведения о свойствах набора строк.

IRowsetLocate

Нет

Необходим для операций UPDATE или DELETE, а также для уточняющего запроса на основе индекса.

IRowsetChange

Нет

Необходим для выполнения операций INSERT, UPDATE или DELETE в таблице. Наборы строк в базовых таблицах должны поддерживать этот интерфейс для поддержки инструкций INSERT, UPDATE или DELETE.

IConvertType

Да

Проверяет, поддерживает ли набор строк преобразование определенных типов данных в столбцах.

Набор строк (в индексе)

IRowset

Да

Просматривает строки.

IAccessor

Да

Выполняет привязку к столбцам в наборе строк.

IColumnsInfo

Да

Получает сведения о столбцах в наборе строк.

IRowsetInfo

Да

Получает сведения о свойствах набора строк.

IRowsetIndex

Да

Обязателен для наборов строк в индексе, применяется в функциях индексирования (настройка диапазона, поиск).

IConvertType

Да

Проверяет, поддерживает ли набор строк преобразование определенных типов данных в столбцах.

Команда (необязательный)

ICommand

Да

Применяется для выполнения запросов.

ICommandText

Да

Применяется для определения текста запросов.

ICommandProperties

Да

Указывает обязательные свойства наборов строк, возвращаемых командой.

ICommandWithParameters

Нет

Применяется для выполнения параметризованных запросов.

ICommandPrepare

Нет

Применяется для подготовки команды к получению метаданных.

Ошибка (необязательный)

IErrorRecords

Да

Получает указатель на интерфейс IErrorInfo для записи об ошибке.

IErrorInfo

Да

Получает текстовое описание записи об ошибке.

Любой объект (необязательный)

ISupportErrorInfo

Нет

Определяет, поддерживает ли указанный интерфейс объекты ошибок.