Разбиение данных на страницы: SQL Server 2005 + SL3 - PullRequest
0 голосов
/ 02 июля 2010

Привет всем, у меня есть интересный вопрос, я думаю.У меня есть приложение Silverlight3, которое запрашивает базу данных SQL Server 2005 асинхронно.Тем не менее, некоторые из наборов данных, возвращаемых запросами, огромны, и поэтому я изучаю нумерацию данных.

Цели:

1) Как раз вовремя вызовы данных - я хочу запрашивать данные страницы 3 только тогда, когда пользователь нажимает, чтобы перейти на страницу 3.

2) Iхотите, чтобы ползунок контролировал, на какой странице я нахожусь - SliderControl - это SL3, его движение привязано к вызову хранимой процедуры (это мое первоначальное предположение относительно подхода).

3) Считать данные вперед как метку дляслайдерТаким образом, слайдер скажет «Страница 1 из 50» или, возможно, «Гант - Харт».Какое-то указание на то, где вы находитесь в данных, фактически не запрашивая все данные, пока пользователь не опустит ползунок в положение.

Я почти уверен, что мне нужно выполнить какой-то запрос кполучить общее количество строк и некоторые данные о закладках, которые запрос в итоге вернет.В противном случае я не знаю, как разделить слайдер, и я не смогу делать надписи на страницах (Гант для харта).

Кто-нибудь имеет опыт работы с подобными вещами?Спасибо.

1 Ответ

0 голосов
/ 03 июля 2010

Обычно здесь используется как минимум 2 отдельных поиска, первый для получения информации о пейджере, а второй для получения данных, соответствующих текущей странице.

Пейджер (слайдер) должен знать общее число результатов, которые будут возвращены, если вы не делали пейджинг .Это необходимо, чтобы показать симпатичный индикатор «Общее количество результатов» для вашего использования и подсчитать, сколько всего у вас страниц.В вашем случае вы захотите отформатировать красивое визуальное отображение страниц для выбора (определяемых желаемыми записями / значением страницы) в вашем слайдере.Это ваш первый запрос;он должен возвращать только одно скалярное целое или длинное, и вы можете рассчитать, что вам нужно для отображения ползунка.

Вторые результаты включают фактические записи, которые будут отображаться для данной страницы .

Шаг 1 из 2 для страницы данных состоит в том, чтобы выполнить запрос, чтобы отфильтровать и упорядочить результаты по первичному ключу, присутствующему в возвращаемых данных, и выбросить значения ключей ввременная таблица с полем AUTO_INCREMENT / IDENTITY или получение номера строки для результатов производной таблицы.(Сводка: 2 поля, 1 для последовательности / 1 для первичного ключа для присоединения на шаге 2).

Шаг 2 из 2 состоит в объединении значений ключа с вашими таблицами, которые содержат данные,упорядочение по последовательности, определенной на шаге 1, выбор только строк с нумерацией (желаемой начальной строки) и (желаемой конечной строки) в соответствии с выбранным номером и размером страницы.

Настоятельно рекомендуется использовать хранимую процедурусохранить данные на сервере во время этой операции, в то время как вам нужно изучить больше данных, чем вы действительно хотите вернуть для оптимизации пропускной способности.

...