Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
MaratSH Member Откуда: Moscow Сообщений: 179 |
Как вообще возможно с помощью CLR Table Valued Function считывать данные из серверной ("context connection = true") таблицы и отдавать серверу постепенно, не загружая все записи в память? Если использовать yield то при запросе из такой табличной функции ругается, и ругается как бы справедливо, согласно документации, где сказано, что нельзя обращаться к данным из FillRow ... Если использовать свои IEnumerable и IEnumerator в которые передать уже открытый SqlDatareader, то в IEnumerator.MoveNext этот ридер уже почему-то закрыт! Передаю даже SqlConnection в IEnumerable и IEnumerator и это соединение тоже оказывается закрытым при вызове в IEnumerator.MoveNext ... Цепляю к SqlConnection.StateChange свой обработчик, чтобы понять, когда блин закрывается и закрывается ли соединение, так нет же, не срабатывает этот обработчик вообще. Что за тупизм? Они что совсем дернулись эти мелкосовтовцы? |
13 июл 14, 00:20 [16296886] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
|
|
13 июл 14, 02:35 [16297075] Ответить | Цитировать Сообщить модератору |
gandjustas Member Откуда: Сообщений: 857 Блог |
MaratSH, http://www.ienablemuch.com/2013/07/streaming-table-valued-function-via-clr.html А вообще зачем отдавать данные из ридера, подключенного к ContextConnection, внутри CLR функции? Обычную inline функцию написать нельзя? |
13 июл 14, 03:36 [16297140] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
А CLR только для постраничного считывания или имеется ещё какой-то смысл? |
14 июл 14, 11:55 [16300394] Ответить | Цитировать Сообщить модератору |
gandjustas Member Откуда: Сообщений: 857 Блог |
Самый частый адекватный кейс для clr - табличная функция для матчей регулярного выражения по строке. Все остальное что я видел - сомнительно. |
||
14 июл 14, 13:16 [16301008] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
Так может обернуть CLR-функцию T-SQL функцией, организовав в последней постраничный вывод? Построчно обрабатывать? |
14 июл 14, 15:46 [16302015] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |