powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / CLR udt в MS SQL 2005
6 сообщений из 6, страница 1 из 1
CLR udt в MS SQL 2005
    #37564187
Little_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня всем. Такой вот вопрос назрел. Есть необходимость вернуть из пользовательской функции сервера 4 числа типа INT. Просто сделать, определив процедуру
Код: vbnet
1.
2.
3.
4.
<Microsoft.SqlServer.Server.SqlProcedure>
    Public Shared Sub uspGetValues(ByVal name As SqlString, <Out()> ByRef value4 As SqlInt16,<Out()> ByRef value2 As SqlInt16,<Out()> ByRef value3 As SqlInt16,<Out()> ByRef value4 As SqlInt16)
    .........................
    End Sub


Но, можно создать udt c полями value1..4 типа SqlInt16. Трабл только в том, что определяя в клиенте LINQ to SQL Data Class студия не понимает синтаксиса пользовательской функции

Код: vbnet
1.
2.
3.
4.
5.
6.
<Microsoft.SqlServer.Server.SqlFunction()> _
    Public Shared Function usfGetValues(ByVal name As SqlString) As udtType
             Dim value As New udtType
             ....................
             Return value    
    End Function



точнее возвращаемого типа функции, который из себя представляет UDT
Вопрос - как вернуть значение функции типа udt с сервера в LINQ to SQL Data Class?
Если это возможно конечно.
Спасибо.
...
Рейтинг: 0 / 0
CLR udt в MS SQL 2005
    #37566900
Little_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что, никто не парился возвращением из процедур CLR нескольких значений, не как таблицы?
...
Рейтинг: 0 / 0
CLR udt в MS SQL 2005
    #37566949
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SqlMetaData property = new SqlMetaData("Property", SqlDbType.VarChar, 50);
SqlMetaData value = new SqlMetaData("Value", SqlDbType.VarChar, 1000);

SqlDataRecord record = new SqlDataRecord(property, value);
SqlContext.Pipe.SendResultsStart(record);

foreach (string propName in directoryEntry.Properties.PropertyNames)
{
    record.SetValue(0, propName);
    record.SetValue(1, directoryEntry.Properties[propName][0].ToString());
    SqlContext.Pipe.SendResultsRow(record);
}

SqlContext.Pipe.SendResultsEnd();  
...
Рейтинг: 0 / 0
CLR udt в MS SQL 2005
    #37567046
Little_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гм. А где тут возврат из процедуры типа удт. Я конечно слабоват в шарпе, но это я так понял выборка 2 полей и возврат его в контекст сервера MSSQL?
Ну а если в процедуре определено
Код: vbnet
1.
2.
Dim value As MyStruct
value.Param1  = ........бла-бла-бла из запроса (SELECT COUNT() FROM table Where param=InputFunctionValue)


можно ли вернут MyStruct как тип самой функции CLR?
В виде
return value
?
...
Рейтинг: 0 / 0
CLR udt в MS SQL 2005
    #37567296
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Little_Catможно ли вернут MyStruct как тип самой функции CLR?
Нельзя.
...
Рейтинг: 0 / 0
CLR udt в MS SQL 2005
    #37567308
Little_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок, спасибо.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / CLR udt в MS SQL 2005
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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