![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка в DBGrid [D6, Paradox]
KPY © (2003-04-07 08:27:00)Подскажите пожалуйста как отсортировать данные в DBGrid по определенному полю которое не является первичным и соответственно содержит неуникальные данные.Таблица парадокс.
sunrider (2003-04-07 15:57:00) [1]Какое поле . Я имею ввиду тип Data, Lookup или что то другое?
ЮЮ (2003-04-07 09:41:00) [2]>Database Desktop не дает делать индекс по этому полю
Всем даёт, а тебе нет :-)
См. Table Properties -> Secondary Indexes -> Define
Levan Varshanidze (2003-04-07 09:35:00) [3]sorry,
doljen bit:
query.sql.delete(1);(udalit stroku 1)
Levan Varshanidze (2003-04-07 09:28:00) [4]a dannie v dbgrid otkuda: iz ttable ili iz tquery?
esli iz tquery, to vremenno zakroi tquery, modificirui tekst query (uberi starii ORDER BY i vstav novii ORDER BY) i otkroi zanovo
u menia rabotaet: po ctrl+tab sortiruetsia po stolbcu, po shift+ctrl+tab sortiruetsia po tomu je stolbcu po ubbivaniu):
var
fieldname:string,
query:tquery;
begin
IF ((SHIFT=[SSCTRL]) OR (SHIFT=[SSSHIFT,SSCTRL]) ) AND (KEY=VK_TAB) THEN
begin
FIELDNAME:=tdbgrid(sender).SelectedField.FieldName;
QUERY:=TQUERY(tdbgrid(sender).DataSource.dataset);
QUERY.CLOSE();
IF QUERY.SQL.Count>1 THEN QUERY.SQL.Delete; //"order by" v sttroke 1 (posle nulevoi )
IF SHIFT=[SSCTRL]
THEN QUERY.SQL.ADD(" ORDER BY "+FIELDNAME)
ELSE QUERY.SQL.ADD(" ORDER BY "+FIELDNAME+" DESC");
QUERY.OPEN();
end;
end;
nu, primerno tak!
KPY (2003-04-07 08:54:00) [5]тут я примерно в курсе. Динамически создавать индекс или можно как нибудь статически. Database Desktop не дает делать индекс по этому полю. Если его ставишь вторым то все-равно сортируется по первичному ключу
Dim!S (2003-04-07 08:49:00) [6]построй по нему индекс