Как выполнить массовое копирование данных с использованием интерфейса IRowsetFastLoad (OLE DB)
Потребитель уведомляет SQLOLEDB о необходимости массового копирования путем установки зависящего от поставщика SQLOLEDB свойства SSPROP_ENABLEFASTLOAD в значение VARIANT_TRUE. Установив на источнике данных это свойство, потребитель создает сеанс SQLOLEDB. Новый сеанс позволяет потребителю получить доступ к интерфейсу IRowsetFastLoad.
Имеется полный образец, иллюстрирующий применение интерфейса IRowsetFastLoad для массового копирования записей в таблицу. В этом образце в таблицу IRFLTable добавляется 10 записей. Необходимо создать в базе данных таблицу IRFLTable.
Полный образец кода содержится в файле BulkCopyRecords.cpp. Архив с образцом можно загрузить на странице Загрузки SQL Server веб-узла MSDN.
Этот образец создан с помощью Microsoft Visual C++ 2005.
Примечание по безопасности |
---|
При возможности используйте проверку подлинности Windows. Если проверка подлинности Windows недоступна, запросите у пользователя ввод учетных данных во время выполнения. Избегайте хранения учетных данных в файле. Если необходимо сохранить учетные данные, зашифруйте их с помощью API-интерфейса шифрования Win32. |
Массовое копирование данных в таблицу SQL Server
Установите соединение с источником данных.
Установите зависящее от поставщика SQLOLEDB свойство источника данных SSPROP_ENABLEFASTLOAD в значение VARIANT_TRUE. При установке данного свойства в значение VARIANT_TRUE вновь созданный сеанс позволит потребителю получить доступ к IRowsetFastLoad.
Создайте сеанс, запрашивающий интерфейс IOpenRowset.
Вызовите метод IOpenRowset::OpenRowset для открытия набора строк, включающего все строки таблицы (в которую необходимо скопировать данные с помощью операции массового копирования).
Выполните необходимые привязки и создайте с помощью метода IAccessor::CreateAccessor метод доступа.
Задайте буфер памяти, из которого данные будут копироваться в таблицу.
Вызовите метод IRowsetFastLoad::InsertRow для массового копирования данных в таблицу.