Как использовать BCP в размещенной среде SQL Server / IIS?Что является альтернативой BCP - PullRequest
1 голос
/ 09 декабря 2011

У меня есть веб-приложение, встроенное в ASP и изначально размещенное на моем локальном сервере - Win 2008, IIS 7.0, SQL Server 2008.

Затем я купил учетную запись хостинга discountASP.Net для веб-сайта и базы данных.

Веб-приложение берет файл из папки под корнем сайта и массово вставляет в записи в базе данных. Все отлично работало на локальной коробке разработки.

Когда база данных + веб-сайт была перемещена в размещенную учетную запись DiscountASP.Net, BULK INSERT не работал, и DiscountASP.Net сообщил нам, что BULK INSERT недопустим, поскольку сервер размещенной базы данных является общим сервером.

Как обходится этот сценарий? Они указали, что мы могли бы использовать отдельные ВСТАВКИ.

Есть ли лучшие решения там? Кто-то сталкивался с подобной проблемой и есть какое-то решение, которое мы можем использовать повторно? (а не изобретать велосипед).

Спасибо за поиск моей проблемы.

Ответы [ 2 ]

0 голосов
/ 22 декабря 2011

После некоторых испытаний я смог сам найти решение.Вот шаги решения (из-за конфиденциальности клиента, я не могу поделиться кодом):

  1. Я прочитал весь текст из файла на веб-сервере из кода ASP с использованием сценариев.Объект сервера FileSystemObject.

  2. Я передаю весь текст файла как переменную в хранимую процедуру (SQL Server 2008).Тип данных параметра должен быть «adLongVarChar» См. Таблицу типов данных здесь (Если перечисление не распознано, как в моем случае, я использовал значение 201 вместо перечисления).

  3. Написал код SQL в хранимой процедуре, чтобы проанализировать строку в строки и затем дополнительно проанализировать каждую строку в значения столбцов.

Надеюсь, псевдокод моих решенийкому-то полезно.

0 голосов
/ 09 декабря 2011

Вы должны будете использовать SQLBulkCopy из .net или отправить в XML для анализа в коде SQL

...