olegenty |
Отправлено: 23.07.2004, 11:49 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Суть такая:
Есть базёнка на MSSQL
Есть таблички, завязанные JOINом.
Возвращается надор данных порядка сотен тысяч записей, которые надо отобразить в гриде.
Может я что-то не понимаю, но единственный способ это сделать — на серверном сурсоре, т.е. TADODataSet::CursorLocation = clUseServer
Что и пытаюсь сделать. Но! в SELECT инструкции есть ORDER BY. и, блин, при любой попытке выполнения такой инструкции с серверным курсором, возникает ошибка: "Текущий проводник не поддерживает необхоимые интерфейсы для сортировки и фильтрации". Да, коннекчусь посредством OLE DB Provider for Microsoft SQL Server.
Ладно, думаю, не хочешь так — заполню временную таблицу отсортированным набором, да и верну её клиенту. Пишу процу, заполняю, запускаю прогу — та же ошибка...!!!
Ребят, кто знает, чё за ######, мать её так??? Сервер не умеет сортировать??? Или я чего-то не понимаю???
|
|
olegenty |
Отправлено: 27.07.2004, 10:32 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Если кому инетерсно, что проблема снялась созданием INDEXED VIEW.
то есть
1. Создаём VIEW по селекту с JOIN
2. Создаём индекс/индексы
3. На клиенте создаём SELECT FROM VIEW, и если в ORDER BY указать поля, по которым есть индекс, то CursorLocation = clUseServer начинает работать так, как ему и положено.
4. Наслаждаемся.
P.S. а SQL.RU меня разочаровал — за три дня я не получил ответа, пришлось методом чтения BOOKS ONLINE самому найти решение.
|
|
FoxVID |
Отправлено: 03.08.2004, 09:45 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 29
|
QUOTE | SQL.RU меня разочаровал — за три дня я не получил ответа, пришлось методом чтения BOOKS ONLINE самому найти решение |
Так это же самый надежный вариант поиска решения. |
|
|