К основному контенту

Сообщения

Показаны сообщения с ярлыком "CLR процедуры"

CLR процедуры. Проблемой с XML-сериализацией.

Работая с CLR процедурами столкнулся со следующей проблемой: при попытке сериализовать в объект ответ от Web-сервиса с помощью XmlSerializer я получал следующую ошибку на SQL-сервере: Cannot load dynamically generated serialization assembly. Как оказалось, для CLR процедуры, использующей Xml-сериализацию, необходимо создавать отдельную сборку сериализации и загружать эту сборку в SQL-сервер. Чтобы создать сборку сериализации, нужно выполнить следующие шаги: 1. В VS выполнить Build проекта, в котором мы создаем  CLR процедуры. 2. С помощью приложения sgen.exe  создать сборку сериализации. Для этого выполнить в командной строке следующий код: [Путь до приложения  sgen.exe]>sgen.exe /force [Путь до проекта с  CLR процедурами] / SqlServerProject.dll В моем случае: [Путь до приложения  sgen.exe] == C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin; SqlServerProject.dll - это имя сборки моего проекта с CLR проц...

Моя первая CLR процедура

Недавно мне пришлось решать следующую задачу: объединить данные, полученные из Web API с результатами sql запроса, а готовый результирующий сет использовать в sql-процедуре. Для решения этой задачи я обратился к CLR процедурам. CLR процедуры - это хранимые  процедуры, выполняемые на SQL-сервере, но написанные на языке C#. CLR процедуры компилируются в отдельную dll и добавляются в SQL-сервер. Чтобы написать свою первую CLR процедуру, я создал новый проект и назвал его SqlServerProject. В качестве шаблона выбрал CLR Database Project. При создании проекта появилось диалоговое окно с просьбой привязать базу данных. Я указал базу данных, где планировал разворачивать CLR процедуру. Для CLR процедуры необходимо указать уровень доступа. Существует три варианта доступа: Safe, External, Unsafe. Подробное об ограничениях доступа можно почитать здесь.  Для своего проекта я выбрал External, так как для моей процедуры требуется доступ в интернет. В проекте я...