![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Индексы [D7, XP]
Sw © (2006-12-27 08:56:00)Помогите, пожалуйста, новичку
Таблица FoxPro, создаю индекс по двум полям,и вывожу в DBGrid - все осортировано как мне надо.
DM.limOut.Exclusive:=TRUE;
DM.limOut.Open;
DM.limOut.AddIndex('NewIndex', 'Otsv;Date', [ixExpression]);
DM.limOut.IndexName :='NewIndex';
Можно ли изменить порядок следования записей в этом dbf согласно сортировке по индексу?
anton773 (2007-01-20 18:50:00) [1]Спасибо работает
Zorro2001 (2007-01-12 06:32:00) [2]я делал так
ADOTable1.Sort:='Field ASC'
это по возрастанию
а DESC -по убыванию.
Sw (2007-01-12 06:14:00) [3]отсортировать и перебросить записи в др.файл получается, но хотелось бы понять как изменить физ.послед-ть записей с помощью BDE API, попытка моя безуспешна, помогите, пож-та
var
Field: word;CaseIns: boolean;Recs,Result: longint;
begin
DM.limOut.Close; DM.limOut.Open;
Field := ????
CaseIns := True;
Recs := DM.limOut.RecordCount;
Check(DbiSortTable(DM.limOut.DBHandle, nil, nil, DM.limOut.Handle, nil, nil,
DM.limOut.Handle, 1, @Field, @CaseIns, nil, nil, true, nil, Recs));
end;
в Field не знаю, предаю число полей - не ругается, а вот что делает, не могу понять, толи перезаписывает этот файл, толи дописывает в него записи (например, в файле было 10 записей, становится 13)
и не знаю как задать параметр для сортировки нужного поля
будьте добры, поможите
Anatoly Podgoretsky (2006-12-27 18:32:00) [4]> Sw (27.12.2006 8:56:00) [0]
dbiSortTable
palva (2006-12-27 10:00:00) [5]Нужно скопировать выборку в другой dbf, потом старый удалить, а новый переименовать. Можно зайти в FOXPRO, там есть команда SORT. Но она работает точно также.
Elen (2006-12-27 09:30:00) [6]
> Sw
А-а-а. Ну насколько мне известно просто так физически отсортировать нет возможности прям из делфи без выкрутасов. В Visual FoxPro обычный SELECT может выдать выборку в другой файл если указать параметр INTO, а вот в Делфи так сделать можно только имея такой провайдер и работая с ним под ADO. Это то что мне удавалось, но потом оказалось проще перейти на фокс полностью (задача такая была). Самый простой вариант создавать программно аналогичный dbf и в цикле переписывать в него отсортированную выборку. Хотя может другие чего попроще подскажут, но в SQL помоему чтото типа INTO всетаки существует, имхо.
Sw (2006-12-27 09:00:00) [7]этот dbf передается в другую прогу (должен быть отсортирован)
к этой программе доступа не имею
Elen (2006-12-27 08:58:00) [8]
> Можно ли изменить порядок следования записей в этом dbf
> согласно сортировке по индексу?
>
Что прям вот так "физически"? А зачем?