У меня есть приложение, где я создаю большой запрос SQL динамически для SQL Server 2008. Этот запрос основан на различных критериях поиска, которые пользователь мог бы дать такие, как поиск по ФАМИЛИЯ, ИМЯ, ПЛА и т.д.Как предсказать количество строк набора результатов?
Это требование что если пользователь дает условие, из-за которого сформированный запрос мог бы возвращать много строк (настраиваемый для максимальных N строк), тогда приложение должно отправить сообщение обратно пользователю, заявив, что ему нужно уточнить свой поисковый запрос, как существующий запрос вернет слишком много строк.
Я бы не хотел возвращать, скажем, 5000 строк клиенту, а затем отбросить эти данные, чтобы показать пользователю ошибку. Каков эффективный способ решения этой проблемы?
Мы ограничиваем этот путь тоже. – gbn
Требование не показывать пользователю никакого результата, если запрос возвратит слишком много строк. И проблема с выполнением подсчета заключается в том, что запрос может стать огромным с несколькими INTERSECTS, UNIONS и т. Д .... и он отправляется из .NET в DB. Таким образом, вычисление будет означать, что мне нужно отправить полный запрос один раз с помощью count, а если он будет в пределах ограничений, то отправьте запрос снова SQL. Обеспечивает требование двойной пропускной способности. Любые другие идеи? –
нет других идей. либо вы возвращаете фактические данные и используете их, либо сначала возвращаете счет, а затем снова запрашиваете данные. вы можете сделать это в хранимой процедуре, но все равно придется делать 2 запроса, если счетчик
oedo