Как решить или пропустить проблему общего ресурса SQLXMLBulkLoad (режим транзакции)

Мне нужно импортировать XML-файл в базу данных Microsoft SQL Server. И у меня есть XML-файл схемы (.xsd), которая содержит информацию о сопоставлении для файла XML, который будет импортирован. Каждую действительную строку данных в XML-файле необходимо импортировать в строку таблицы базы данных с несколькими столбцами.

Первоначально я использовал SQLXMLBulkLoad (Non Transaction Mode — укажите строку подключения к базе данных), чтобы выполнить работу, и она работает просто отлично, однако есть новое требование, которое требует от меня выполнения хранимой процедуры на том же подключении к базе данных, которое SQLXMLBulkLoad использует. Цель этой хранимой процедуры — связать соединение с определенным идентификатором для текущего пользователя, поскольку может быть несколько пользователей, одновременно импортирующих файл XML. Поэтому я должен вместо этого использовать режим транзакции (- укажите подключение к базе данных, а не строку подключения для SQLXMLBulkLoad) и которые представляют широко известную проблему с общим доступом в удаленной среде. Если XML-файл является локальным, а сервер БД — удаленным, мне нужно создать общую папку для SQLXMLBulkLoad работать. Это плохо, но можно сделать.

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

Я гуглил некоторое время и нашел одно решение, которое могло бы работать — SqlBulkCopy, но у меня проблемы с разбором файла схемы (.xsd) потому что он содержит много xml-db:table картографическая информация.

Любая идея будет оценена.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]