Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Индекс MS SQL не работает [D5, D6, MSSQL]


korn ©   (2002-10-06 15:49:00) 

Помогите, знающие люди! Программка на D6. Подключаюсь через ADOСonnection к MS SQL. Все работает нормально. НО, указав в свойствах таблицы ADOTable индекс MS SQL типа IX_Person (зозданный в Enterprice Manager"е), результата не получаю. Система на индекс не ругается, но и записи не упорядочивает. Если же просто указать в свойствах таблицы IndexField, то все работает, но мне-то нужен ТОТ индекс, с сервера... Как быть?


korn   (2002-10-08 08:02:00) [1]

1) Я понял в чем дело. Свойства SORT нет ни у TTable, ни у TADOTable В ИНСПЕКТОРЕ ОБЪЕКТОВ (почему-то). "ReadOnly", а потом сразу "TableDirect". Но В ПРИНЦИПЕ оно есть. И это отлично! :-)

2) И на счет Query это, пожалуй, очень правильное замечание...

Спасибо ребята! Огромное спасибо за помошь! Давно "живу" на этом сайте, но не перестаю удивляться его полезности...


vuk   (2002-10-07 14:37:00) [2]

>Зачем же мне наворачивать запросы
А в любом случае без SQL не обойтись, правда если Вы используете ADOTable, то запрос будет сгенерирован без Вашего участия. И какая в результате разница?


sniknik   (2002-10-07 11:38:00) [3]

свойство sort есть у ADOTable а не Table, внимательней к ответам.

property Sort: WideString;
ADOQuery1.Sort := "LastName ASC, DateDue DESC"

кстати если у тебя Table то значит и BDE? т.е. дикая связка BDE->ODBC->MSSQL что не есть good. (возможны ошибки именно изза этого, хотя ошибки сомнительно но вот функционал снижается точно, а ошибки как ожидание чегото что в этой связке не работает)


korn   (2002-10-07 10:48:00) [4]

1) Нет там в свойствах "Sort" ни у Table, ни у DataSet... :-(
2) Зачем же мне наворачивать запросы, если я просто желаю показать пользователю DBGrid с упорядоченным списком фамилий?... Хотя, может это концептуально и более правильно.

А в книжках и Help"ах пишут, что должно работать... Мда... Что бы такое придумать?...


korn   (2002-10-06 20:47:00) [5]

Thanx! Попробую разобраться...


vuk   (2002-10-06 20:05:00) [6]

Обычные индексы (не кластерные) создаются не для упорядочивания записей, а для ускорения выборок. Напротив, кластерные индексы создаются для физического упорядочивания записей. Понятное дело, что кластерный индекс у таблицы может быть только один и его желательно создавать для полей, значения которых будут только возрастать по мере добавления записей, иначе будут лишние расходы на вставку записей.
А сортировку записей, как уже сказано, лучше выполнять при формировании запроса при помощи предложения order by.


wicked   (2002-10-06 17:14:00) [7]

1. использовать свойство Sort (а есть ли оно у TADOTable?...)
2. не использовать ADOTable... вместо него использовать ADODataSet и в запросе упорядочивать так, как нужно... или использовать Sort - он там точно есть...


Наверх

Титульная страница Поиск, карта сайта Написать письмо