Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / CLR сборка с использованием внешней библиотеке / 13 сообщений из 13, страница 1 из 1
23.03.2019, 16:54
    #39790450
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
Пытаюсь создать CLR функцию на основе свое библиотеки, но которая использует стороннюю библиотеку, назовем ее EXTERNAL.DLL
При попытке создать сборку получаю ошибку Assembly EXTERNAL.DLL was not found in the SQL catalog.
Про какой именно каталог идет речь? EXTERNAL.DLL прописана в GAC, я скидывал ее в SYSTEM32, но ошибка не пропадает.

Куда нужно скопировать внешнюю библиотеку, чтобы ее можно было использовать в моей сборке?
...
Рейтинг: 0 / 0
23.03.2019, 16:55
    #39790451
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
создаю с EXTERNAL_ACCESS
...
Рейтинг: 0 / 0
24.03.2019, 14:14
    #39790601
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
lex452,

вам нужно также пролить вашу external.dll от которой зависит ваша сборка на Sql server.

При этом есть большая доля вероятности что проливка external.dll уже потребует набора разрешений unsafe.
...
Рейтинг: 0 / 0
24.03.2019, 14:59
    #39790610
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
felix_ff,

что значит пролить? C Unsafe проблемы нету
...
Рейтинг: 0 / 0
24.03.2019, 15:35
    #39790621
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
lex452что значит пролить?Сделать CREATE ASSEMBLY
...
Рейтинг: 0 / 0
24.03.2019, 16:00
    #39790628
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
alexeyvglex452что значит пролить?Сделать CREATE ASSEMBLY
Разве я могу сделать CREATE ASSEMBLY для сторонней DLL к исходникам которой у меня нет доступа?
...
Рейтинг: 0 / 0
24.03.2019, 16:11
    #39790630
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
lex452alexeyvgпропущено...
Сделать CREATE ASSEMBLY
Разве я могу сделать CREATE ASSEMBLY для сторонней DLL к исходникам которой у меня нет доступа?Хм, вы же создаёте сборку из dll, зачем вам исходники?

Вот, например, подобное обсуждение: https://dba.stackexchange.com/questions/81277/assembly-system-web-version-4-0-0-0-culture-neutral-publickeytoken-b03f5f7f1
...
Рейтинг: 0 / 0
24.03.2019, 16:13
    #39790632
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
alexeyvglex452пропущено...

Разве я могу сделать CREATE ASSEMBLY для сторонней DLL к исходникам которой у меня нет доступа?Хм, вы же создаёте сборку из dll, зачем вам исходники?

Вот, например, подобное обсуждение: https://dba.stackexchange.com/questions/81277/assembly-system-web-version-4-0-0-0-culture-neutral-publickeytoken-b03f5f7f1
Я все время считал что перед методом должно быть прописано [Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
чтобы он был доступен в sql
...
Рейтинг: 0 / 0
24.03.2019, 16:14
    #39790633
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
И мне не совсем понятно, почему сервер не видит dll когда она прописана в GAC?
...
Рейтинг: 0 / 0
24.03.2019, 16:17
    #39790634
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
lex452Разве я могу сделать CREATE ASSEMBLY для сторонней DLL к исходникам которой у меня нет доступа?Что вообще делает CREATE ASSEMBLY?
Она добавляет сборку к DOT.NET хосту, который встроен в SQL Server. Он же сам хостит DOT.NET, только частично пользуясь соотв. инфраструктурой, установленной в винды (точнее, в установленный хост фреймворка).

Ряд стандарных сборок туда уже добавлен изначально (допустим, System.Data), но многих нет, и уж тем более сторонних, не микрософтовских.
Совершенно необязательно в этой сборке должны быть, например, CLR функции, это просто DOT.NET сборки, и исходный код тем более не нужен.
...
Рейтинг: 0 / 0
24.03.2019, 16:20
    #39790635
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
lex452И мне не совсем понятно, почему сервер не видит dll когда она прописана в GAC?Потому что сервер имеет свою виртуальную машину dot.net, он не использует ту, которую вы установили сами.

Это нужно для того, что бы dot.net виртуальная машина работала внутри процесса ядра Data base Engine, вначе как быстро выполнять CLR изнутри ядра? Делать Out-Of-Process вызовы миллионы раз при выполнении запроса?
...
Рейтинг: 0 / 0
24.03.2019, 16:27
    #39790636
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
alexeyvg,

То есть все необходимые библиотеки можно добавить через create assembly и они будут видеть друг друга?
...
Рейтинг: 0 / 0
24.03.2019, 16:56
    #39790642
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLR сборка с использованием внешней библиотеке
lex452alexeyvg,

То есть все необходимые библиотеки можно добавить через create assembly и они будут видеть друг друга?Да.
Но вы почитайте обсуждение по ссылке, вроде могут быть и трудности.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / CLR сборка с использованием внешней библиотеке / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]