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


IRowsetFastLoad::InsertRow (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
    SQLNCLI10 не удалось выделить достаточно памяти для завершения запроса.

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

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

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

Замечания

Ошибка при преобразовании данных потребителя в тип данных SQL Server для столбца приводит к тому, что поставщик OLE DB для собственного клиента SQL Server возвращает E_FAIL. Данные могут передаваться в 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.

См. также

Другие ресурсы