У меня есть следующая проблема: у меня должна быть доступная DLL от различных клиентов внутри локальной сети, которая находится на ПК, на котором размещен SQL Server.Получение результатов из SQLCLR
Мне нужно получить доступ к этой DLL от всех клиентов, чтобы вернуть контрольную сумму юридического налога.
Я думал создать CLR-процедуру, которая вызывает DLL на сервере и возвращает контрольную сумму.
Я следовал некоторым примерам интернета и создал простое HelloWorld приложения ....
Я создал DLL в C#
[SqlProcedure]
public static int HelloWorld(int h)
{
return h;
}
Я создал сборку в SQL Server:
CREATE ASSEMBLY MyChecksum
from 'C:\Users\Panos\Documents\Visual Studio 2010\Projects\DigitalSignature\Algobox\bin\Debug\checksum.dll'
WITH PERMISSION_SET = UNSAFE
Я создал процедуру
CREATE PROC sp_mychecksum (@h int)
AS
EXTERNAL NAME MyAlgobox.Signatures.HelloWorld
Суть заключается в том, что, когда я исполняю свою процедуру (exec sp_mychecksum
) я получаю только сообщение
12
Command (s) успешно завершена
, а не 12
Любые улики?
Что вы получите, если вы запускаете 'объявить @rc Int; exec @rc = sp_mychecksum 12; выберите @ rc'? –
На этом сайте представлены отличные примеры реализации CLR-скалярных и табличных функций, а также хранимых процедур: http://www.wisesoft.co.uk/articles/sql_server_clr_io_utility.aspx Они также очень удобны в вашем арсенале , – brian