Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
lex452 Member Откуда: Сообщений: 588 |
Пытаюсь создать CLR функцию на основе свое библиотеки, но которая использует стороннюю библиотеку, назовем ее EXTERNAL.DLL При попытке создать сборку получаю ошибку Assembly EXTERNAL.DLL was not found in the SQL catalog. Про какой именно каталог идет речь? EXTERNAL.DLL прописана в GAC, я скидывал ее в SYSTEM32, но ошибка не пропадает. Куда нужно скопировать внешнюю библиотеку, чтобы ее можно было использовать в моей сборке? |
23 мар 19, 16:54 [21841712] Ответить | Цитировать Сообщить модератору |
lex452 Member Откуда: Сообщений: 588 |
создаю с EXTERNAL_ACCESS |
23 мар 19, 16:55 [21841713] Ответить | Цитировать Сообщить модератору |
felix_ff Member Откуда: Moscow Сообщений: 1698 |
lex452, вам нужно также пролить вашу external.dll от которой зависит ваша сборка на Sql server. При этом есть большая доля вероятности что проливка external.dll уже потребует набора разрешений unsafe. |
24 мар 19, 14:14 [21842023] Ответить | Цитировать Сообщить модератору |
lex452 Member Откуда: Сообщений: 588 |
felix_ff, что значит пролить? C Unsafe проблемы нету |
24 мар 19, 14:59 [21842082] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
|
||
24 мар 19, 15:35 [21842129] Ответить | Цитировать Сообщить модератору |
lex452 Member Откуда: Сообщений: 588 |
Разве я могу сделать CREATE ASSEMBLY для сторонней DLL к исходникам которой у меня нет доступа? |
||||
24 мар 19, 16:00 [21842146] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
Вот, например, подобное обсуждение: https://dba.stackexchange.com/questions/81277/assembly-system-web-version-4-0-0-0-culture-neutral-publickeytoken-b03f5f7f1 |
||||
24 мар 19, 16:11 [21842148] Ответить | Цитировать Сообщить модератору |
lex452 Member Откуда: Сообщений: 588 |
Я все время считал что перед методом должно быть прописано [Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)] чтобы он был доступен в sql |
||||
24 мар 19, 16:13 [21842150] Ответить | Цитировать Сообщить модератору |
lex452 Member Откуда: Сообщений: 588 |
И мне не совсем понятно, почему сервер не видит dll когда она прописана в GAC? |
24 мар 19, 16:14 [21842151] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
Она добавляет сборку к DOT.NET хосту, который встроен в SQL Server. Он же сам хостит DOT.NET, только частично пользуясь соотв. инфраструктурой, установленной в винды (точнее, в установленный хост фреймворка). Ряд стандарных сборок туда уже добавлен изначально (допустим, System.Data), но многих нет, и уж тем более сторонних, не микрософтовских. Совершенно необязательно в этой сборке должны быть, например, CLR функции, это просто DOT.NET сборки, и исходный код тем более не нужен. |
||
24 мар 19, 16:17 [21842152] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
Это нужно для того, что бы dot.net виртуальная машина работала внутри процесса ядра Data base Engine, вначе как быстро выполнять CLR изнутри ядра? Делать Out-Of-Process вызовы миллионы раз при выполнении запроса? |
||
24 мар 19, 16:20 [21842153] Ответить | Цитировать Сообщить модератору |
lex452 Member Откуда: Сообщений: 588 |
alexeyvg, То есть все необходимые библиотеки можно добавить через create assembly и они будут видеть друг друга? |
24 мар 19, 16:27 [21842155] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
Но вы почитайте обсуждение по ссылке, вроде могут быть и трудности. |
||
24 мар 19, 16:56 [21842171] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |