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


IRowsetFastLoad::InsertRow (поставщик OLE DB собственного клиента)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Внимание

Собственный клиент SQL Server (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Поставщик OLE DB собственного клиента SQL Server (SQLNCLI или SQLNCLI11) и устаревший поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) не рекомендуется для новой разработки. Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server .

Добавляет строку в набор строк для массового копирования. Примеры можно найти в статьях Выполнение массового копирования данных с использованием интерфейса IRowsetFastLoad (OLE DB) и Отправка данных BLOB-объектов в SQL Server с помощью интерфейсов IROWSETFASTLOAD и ISEQUENTIALSTREAM (OLE DB).

Синтаксис

  
HRESULT InsertRow(  
      HACCESSOR hAccessor,  
      void* pData);  

Аргументы

hAccessor[in]
Дескриптор метода доступа, определяющий данные строк для массового копирования. Указанный метод доступа является методом доступа к строке, связывающий память потребителя, содержащую значения данных.

pData[in]
Указатель на память потребителя, содержащую значения данных. Дополнительные сведения см. в разделе Структуры DBBINDING.

Значения кода возврата

S_OK
Метод выполнен успешно. Любые связанные значения состояния для всех столбцов имеют значение DBSTATUS_S_OK или DBSTATUS_S_NULL.

E_FAIL
Произошла ошибка. Сведения об ошибках можно получить с помощью интерфейса обработки ошибок набора строк.

E_INVALIDARG
Аргумент pData содержит указатель NULL.

E_OUTOFMEMORY
SQLNCLI11 не удалось выделить достаточно памяти для завершения запроса.

E_UNEXPECTED
Этот метод был вызван применительно к набору строк массового копирования, который ранее стал недействительным в результате выполнения метода IRowsetFastLoad::Commit.

DB_E_BADACCESSORHANDLE
Потребитель предоставил недопустимый аргумент hAccessor .

DB_E_BADACCESSORTYPE
Указанный метод доступа не является методом доступа к строке или не указывает память потребителя.

Замечания

Ошибка, преобразующая данные потребителей в тип данных SQL Server для столбца, приводит к E_FAIL возврату от поставщика OLE DB собственного клиента SQL Server. Данные можно передавать в SQL Server в любом методе InsertRow или только в методе Commit . Приложение потребителя может вызывать метод InsertRow много раз с ошибочными данными, прежде чем получит уведомление, что при преобразовании типов данных произошла ошибка. Поскольку метод Commit гарантирует, что все данные были правильно указаны потребителем, потребитель может при необходимости использовать метод Commit для проверки данных.

Наборы строк массового копирования поставщиков OLE DB для собственного клиента SQL Server доступны только для записи. Поставщик OLE DB собственного клиента SQL Server не предоставляет никаких методов, разрешающих запрос потребителей набора строк. Чтобы прервать обработку, потребитель может освободить ссылку на интерфейс IRowsetFastLoad, не вызывая метод Commit. Невозможно получить доступ к вставленной потребителем строке, изменить ее значения или удалить ее из набора строк.

Массовые скопированные строки форматируются на сервере для SQL Server. Формат строки зависит от любых параметров, которые могли быть заданы для соединения или сеанса, например ANSI_PADDING. Этот параметр устанавливается по умолчанию для любого подключения, сделанного через поставщик OLE DB собственного клиента SQL Server.

См. также

IRowsetFastLoad (OLE DB)