Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > индексы |
Автор: Гость_grib 24.2.2005, 20:45 | ||
надо сортировать Grid по клику на столбце. использую таблицу, поэтому Query.SQL:=Order By не подходит. начал разбираться с индексами, запутался. Их можно создать до выполнения проги?? Почему не работает
Пишет Table busy. ПАМАГИТЕ! |
Автор: Kesh 24.2.2005, 21:10 | ||
Конечно можно, а инода даже намного удобнее... Ты бы вот еще базу указал... ![]() |
Автор: Гость_grib 25.2.2005, 04:53 |
База Paradox, BDE. создавать индексы надо в DBD или Delphi?? и как?? В Table, в свойстве IndexDefs, то что я добавляю, почему-то не сохраняется. а в IndexFields неактивна кнопка Add. И все-таки почему код приведеный выше не работает? |
Автор: Bes 25.2.2005, 07:44 |
А почему ордер бай не подходит? Если не секрет. |
Автор: bursa 25.2.2005, 16:34 |
Table1.IndexFieldNames:='MyField'; |
Автор: Guest 25.2.2005, 21:50 | ||
Потому что я добавляю и удаляю записи из набора данных, в Query этого делать нельзя (насколько я знаю) кто-нибуть скажет мне наконец КАК создать индекс в базе?? bursa, сначала надо сделать индекс, а потом пользовать. |
Автор: Vit 27.2.2005, 07:03 | ||||
МожноЮ причём точно так же как и из табицы, если запрос live
Не советую, Парадокс очень плохо работает с индексами, они у него легко портятся. При необходимости я создаю SQL запросом. |
Автор: Bes 28.2.2005, 09:03 | ||
Дак ты закрой набор, добавь запись и открой набор. При необходимости сделай зарубку БукМарк и потом вернись к ней. |
Автор: bursa 28.2.2005, 16:45 |
CREATE INDEX Name_idex ON nametable (namefield) |
Автор: TYRARGO 1.7.2006, 04:49 |
А ведь автор темы прав, вы не один не ответили, как создать индекс в таблице БЕЗ использования SQL... Меня, кстати, тоже интересует этот вопрос.... Добавлено @ 04:53 2 Bursa: А вы, уважаемый, вообще чушь пишите... На такую запись: Table1.IndexFieldNames:='MyField'; Вы получите следующее: No index for fields 'MyField'... Не засоряли бы лучше топик... |
Автор: Palladin 1.7.2006, 11:39 | ||||
2TYRARGO Не силён в SQL, но помойму чуш пишите ВЫ, 'MYFIELDS' это название поля, а ошибку что вы указали это потому что у вас нет такого поля ![]() Допустим в БД есть поле 'Автор' тогда сортировка будет такой
И ещё если имя поля состоит более чем из одного слова, допустим 'Данные переработки' , то запрос нужно писать в квадратных скобках помойму так
P.S. Поправьте меня если я не прав ![]() |
Автор: superVad 3.7.2006, 14:15 |
мне кажеться что для сортировки грида необязательно создавать индекс - может можно это сделать средствами датасета например в фибовском датасете есть метод DoSort и еще надо активировать кнопку в заголовке столбца в гриде (ehgrid) - например DBGridEh1.Columns.Items[0].Title.TitleButton:=True; |
Автор: Fazil6 4.7.2006, 09:36 | ||||
Добавлено @ 09:38 RooR,
ты не прав |
Автор: Palladin 4.7.2006, 13:53 |
Не прав по данной теме или по коду, просто если по коду, то такой код работает,у меня было задание сделать БД и т.д. дак там у меня сортировка именно так была сделана ![]() |
Автор: DimW 6.7.2006, 17:47 |
Уважаемые о чем вы спорите!!! речь не о том как правельно создать индекс, а как сделать сортировку!!! Истенное предназначение индексов - обеспечивать быстрый боступ к данным таблице! Если создание индекса это один из способов сортировки данных то лично я против таких методов, решив одну проблему вы создаете другую, а именно - модификация данных будет осуществляться медленнее т.к. нужно не только добавить или изменить запись, а еще и переписать индекс! Используйте sql это хорошая привычка, а если у вас не получается модифицировать данные полученные из Query, то следует попыхтеть и научиться (хотя пыхтеть особо не над чем). Я старонник того что не нужно привыкать к возможнастям визуальной среды разработки, язык sql на столько развит что при помощи него можно получить данные практически в любом виде который вам нужен (хотя к БД парадокс это мало относится). |
Автор: Palladin 6.7.2006, 19:45 | ||
2DimW вот и я про тоже
Делает сортировку, и нечего тут придумывать всякие навороты ![]() |
Автор: superVad 10.7.2006, 15:48 |
таки мне правильно казалось ![]() |