Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Функция для выборки записей в диапазоне номеров
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, форумчане ! Есть некая View, возвращающая полный список абонентов сети. Для сайта необходим постраничный просмотр этого списка. Соответственно нужна UDF, которая по заданному номеру страницы (листа) и кол-ву строк на листе будет возвращать подмножество записей. Доп. условие : предварительная сортировка по указанному столбцу. Т.е. на входе три параметра: кол-во строк на листе, номер листа и имя столбца для сортировки, на выходе - от 0 до N записей, где N=кол-во строк на листе. Помогите, пожалуйста, хотя бы ссылкой, где найти подходящий пример. Так давно не писал на TSQL, что почти все позабыл :) Заранее спасибо за любую помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 16:23 |
|
||
|
Функция для выборки записей в диапазоне номеров
|
|||
|---|---|---|---|
|
#18+
MsGuns, Код: sql 1. 2. например так https://rextester.com/live/YQDA46874 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 17:29 |
|
||
|
Функция для выборки записей в диапазоне номеров
|
|||
|---|---|---|---|
|
#18+
Возвращает только один столбец с номерами строк, а нужно все столбцы вьюхи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 19:14 |
|
||
|
Функция для выборки записей в диапазоне номеров
|
|||
|---|---|---|---|
|
#18+
MsGuns, вьюхи о которой здесь никто кроме автора не знает, а все хрустальные шары на лето расходятся по лесам в походы для обрядов и ритуалов. убери строку WITH, заменяй объект после FROM на нужный и перечесляй после SELECT необходимые поля, строка с option тоже будет не нужна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 19:31 |
|
||
|
Функция для выборки записей в диапазоне номеров
|
|||
|---|---|---|---|
|
#18+
MsGunsСоответственно нужна UDF Либо у вас очень специфичные условия, вроде того , что надо учитывать обновление view при отображении списка пользователю или у вас версия сервера 11, и вы забыли об этом написать, либо вы не удосужились погуглить и/или с 2011 года не читали документацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 20:15 |
|
||
|
Функция для выборки записей в диапазоне номеров
|
|||
|---|---|---|---|
|
#18+
Версия сервера 11.0.5388.0 Нумерация в общем не нужна - я ее проставлю в разметке Html Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Так все работает. Но если завернуть это в UDF, то кричит, что в теле функции вызов Execute невозможен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 17:09 |
|
||
|
Функция для выборки записей в диапазоне номеров
|
|||
|---|---|---|---|
|
#18+
MsGuns, Не execute, а конкретней: в функции запрещён вызов хранимых процедур (за исключением узкого круга избранных M$) почему-то Microsoft из-за вопросов безопасности (а Dyn_SQL один из самых опасных подходов) не отдаёт это даже на усмотрение администраторов сервера я обходил через Assemblies (делал свою C# сборку и встраивал в SQL Сервер) - тогда вызов функции (в свою очередь вызывающей SP) из сборки работает. Если есть возможность то обычно вместо UDF это заворачивают в stored_procedure (с теми-же параметрами), тогда такого ограничения нет (там другую SP можно вызывать) Но вообще многое из этого делается на клиенте при формировании нормального запроса (из выбранных пользователем параметров) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 17:49 |
|
||
|
Функция для выборки записей в диапазоне номеров
|
|||
|---|---|---|---|
|
#18+
Никакой sql_execute не нужен (имхо, это вообще крайняя мера). Вариант без нумерации: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. И с нумерацией: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 18:29 |
|
||
|
Функция для выборки записей в диапазоне номеров
|
|||
|---|---|---|---|
|
#18+
fkthat, все получилось ОТЛИЧНО ! Второй вариант (с нумерацией) не прошел ("Функция Row_Number не имеет аргументов"), но вполне хватит первого ! Огромного спасибо ! Отдельные благодарности: vikkiv - за полезные пояснения и быстроту реакции PizzaPizza - за розги - без них хуже доходит :) fkthat - за фактически готовое решение и науку всем - за внимание и потраченное время Отличный форум ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 12:46 |
|
||
|
Функция для выборки записей в диапазоне номеров
|
|||
|---|---|---|---|
|
#18+
vikkivНо вообще многое из этого делается на клиенте при формировании нормального запроса (из выбранных пользователем параметров) У меня MVC + EDM, подход: максимальный вынос логики на SQL-сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 12:52 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39818216&tid=1687774]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 403ms |

| 0 / 0 |
