![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вторичные индексы в Парадоксе [D7, Paradox]
PeterBuild © (2006-10-05 20:12:00)Здравствуйте! Не пинайте меня сильно если вопрос детский! У меня проблемка: Есть обычная таблица PX cделал в DB DeskTop поставил первичный индекс но по двум полям потому как получалось несоблюдение уникальности (у меня поля Имя и Ник), а сортировку хотелось по имени, ну это слава Богу работает! Но надо зделать сортировку и по таким полям как Счет и Взнос (Real), я создал вторичные индексы в том же ДескТопе по этим полям, поставил Maintained, потом повесил на TitleClick у RXDBGrid :
procedure TfrmMain.BaseGridTitleBtnClick(Sender: TObject; ACol: Integer;
Field: TField);
var
bActive, bExclusive: Boolean;
begin
with DM.tblBase do
begin
bActive := Active;
bExclusive :=Exclusive;
IndexDefs.Update;
Close;
Exclusive := TRUE;
Open;
if Field.Name = 'Count' then begin
AddIndex('ByCount', 'Count', [ixCaseInsensitive]);
end;
if Field.Name = 'Fond' then begin
AddIndex('ByFond', 'Fond', [ixCaseInsensitive]);
end;
Close;
Exclusive := bExclusive;
Active := bActive;
Open;
end;
end;
теперь при нажатии на заголовки ничего не индексируется, хотя если запускаю с Delphi то подает признаки жизни т.е. Table is Busu но когда в автономном режиме то сортировки не происходит 8-( Подскажите плз. как правильно осуществить сортировку, заранее благодарен
Германн (2006-10-08 02:22:00) [1]
> Johnmen © (07.10.06 18:01) [12]
Имхо.
Использование BDE для Парадокса - вполне нормальное решение. Поскольку родное. И проблем с TTable при работе с Парадоксом тоже нет. Могут быть проблемы с использованием самого Парадокса там, где это неоправдано, но это уже "другой коленкор". А TTable в ряде случаев предпочтительнее, чем запросы.
Johnmen (2006-10-07 18:01:00) [2]
> Германн © (07.10.06 01:31) [11]
Скажу честно, я вообще книг не читаю :) Поэтому и было интересно, в какой это рекомендуют, хотя бы для Парадокса.
Германн (2006-10-07 01:31:00) [3]
> Johnmen © (06.10.06 23:06) [6]
>
> А почему бы просто не выполнить запрос с сортировкой?
> И в каких книгах рекомендуют использовать TTable?
А ты Жень, видел такие книги, в которых НЕРЕКОМЕНДУЮТ использовать TTable в Парадоксе? Назови, плиз. Дополню свой список "Ignore" их авторами.
PeterBuild (2006-10-07 00:36:00) [4]Может быть потому что у этих индексов стоит xCaseSensetive или потому что стоит первичный ключ на двух полях сразу, эта сортировка по первичному ключу постоянно активна! В IndexDefs все нормально....
Может и в правду попробовать зделать сортировку через TRXQuery? Мне все равно надо делать фильтр, на єту же таблицу, а именно оставить только конкретные имена: например оставить только Сереж ;-) Подскажите если не трудно где можна найти инфу по использованию TQuery только желательно чтобы поменьше абстрактных понятий было, а побольше примеров использование сортировки, фильтра...
Mike Kouzmine (2006-10-07 00:32:00) [5]Johnmen © (06.10.06 23:06) [6] Это парадокс.
Виталий Панасенко (2006-10-07 00:16:00) [6]
> PeterBuild © (06.10.06 22:56) [5]
> Не дало ни каких результатов... Из за чего это может быть?
> Подскажите если кто знает
Вызывает большие сомнения... У меня подобный код отлично работает...
PeterBuild (2006-10-06 23:28:00) [7]Ты имеешь в виду TQuery???
Если да то напиши плз. как правильно сгенирировать запрос в SQL чтобы это осуществить? И надо ли переопределять для DataSourse DataSet?? Киньте хоть пару слов!!! Обещаю скоро выучу SQL :-о Просто надо срочно доделать этот проектик....
Johnmen (2006-10-06 23:06:00) [8]А почему бы просто не выполнить запрос с сортировкой?
И в каких книгах рекомендуют использовать TTable?
PeterBuild (2006-10-06 22:56:00) [9]
> когда индексы уже есть, их просто нужно выбрать, чтоб по
> ним автоматически упорядочилось отображение данны
А нужно ли переводить Table в монопольный режим???
У меня не работает...
добавил в BaseGridTitleBtnClick :
DisableControls;
if Field.Name = 'Count' then
begin
DM.tblBase.IndexName:='ByCount';
end;
if Field.Name = 'Fond' then
begin
DM.tblBase.IndexName:='ByFond';
end;
EnableControls;
Не дало ни каких результатов... Из за чего это может быть? Подскажите если кто знает
Desdechado (2006-10-06 10:52:00) [10]когда индексы уже есть, их просто нужно выбрать, чтоб по ним автоматически упорядочилось отображение данных
Виталий Панасенко (2006-10-06 09:29:00) [11]в продолжение
> Stanislav © (06.10.06 09:17) [2]
вместо того, что ПЕРЕсозадвать индексы, созданные в DBD
Stanislav (2006-10-06 09:17:00) [12]Насколько я знаю тебе нужно на событие BaseGridTitleBtnClick
, изменять TTABLE.INDEXNAME, на нужный индекс.
PeterBuild (2006-10-05 21:10:00) [13]Ну пожалуйста.... Для Вас ето же легко, помогите начинающему....