Написал класс с таким кодом
using System;
using System.Data.Sql;
using Microsoft.SqlServer.Server;
using System.Collections;
using System.Data.SqlTypes;
using System.Diagnostics;
public class Class1
{
[SqlProcedure()]
public static void methodInt(out SqlInt32 str)
{
str = 123;
}
public static void methodString(out SqlString str)
{
str = "Строка из dll";
}
}
В базу библиотеку записал, процедура, работающая с methodInt создается и вполянется, а со строкой не созадется
create function test_func_string (@str nvarchar(4000))
returns nvarchar(4000)
AS external name FifoCpopLibrary.Class1.methodString;
Выдает ошибку
сообщение: 6551, уровень: 16, состояние: 2, процедура: test_func_string, строка: 2 [строка начала пакета: 10]
CREATE FUNCTION для "test_func_string" выполнить не удалось, так как типы T-SQL и CLR для возвращаемого значения не совпадают.
Как решить проблему?