Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

Индексы   Найти похожие ветки 

 
Sw   (2006-12-27 08:56) [0]

Помогите, пожалуйста, новичку
Таблица FoxPro, создаю индекс по двум полям,и вывожу в DBGrid - все осортировано как мне надо.
 DM.limOut.Exclusive:=TRUE;
 DM.limOut.Open;
 DM.limOut.AddIndex("NewIndex", "Otsv;Date", [ixExpression]);
 DM.limOut.IndexName :="NewIndex";
Можно ли изменить порядок следования записей в этом dbf согласно сортировке по индексу?


 
Elen ©   (2006-12-27 08:58) [1]


> Можно ли изменить порядок следования записей в этом dbf
> согласно сортировке по индексу?
>

Что прям вот так "физически"? А зачем?


 
Sw   (2006-12-27 09:00) [2]

этот dbf передается в другую прогу (должен быть отсортирован)
к этой программе доступа не имею


 
Elen ©   (2006-12-27 09:30) [3]


> Sw

А-а-а. Ну насколько мне известно просто так физически отсортировать нет возможности прям из делфи без выкрутасов. В Visual FoxPro обычный SELECT может выдать выборку в другой файл если указать параметр INTO, а вот в Делфи так сделать можно только имея такой провайдер и работая с ним под ADO. Это то что мне удавалось, но потом оказалось проще перейти на фокс полностью (задача такая была). Самый простой вариант создавать программно аналогичный dbf и в цикле переписывать в него отсортированную выборку. Хотя может другие чего попроще подскажут, но в SQL помоему чтото типа INTO всетаки существует, имхо.


 
palva ©   (2006-12-27 10:00) [4]

Нужно скопировать выборку в другой dbf, потом старый удалить, а новый переименовать. Можно зайти в FOXPRO, там есть команда SORT. Но она работает точно также.


 
Anatoly Podgoretsky ©   (2006-12-27 18:32) [5]

> Sw  (27.12.2006 8:56:00)  [0]

dbiSortTable


 
Sw   (2007-01-12 06:14) [6]

отсортировать и перебросить записи в др.файл получается, но хотелось бы понять как изменить физ.послед-ть записей с помощью 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)
и не знаю как задать параметр для сортировки нужного поля
будьте добры, поможите


 
Zorro2001 ©   (2007-01-12 06:32) [7]

я делал так
ADOTable1.Sort:="Field  ASC"
это по возрастанию
а DESC -по убыванию.


 
anton773 ©   (2007-01-20 18:50) [8]

Спасибо работает



Страницы: 1 вся ветка

Текущий архив: 2007.02.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
8-1149685999
pm
2006-06-07 17:13
2007.02.04
VideoWindow не на главной форме


15-1168590761
6548
2007-01-12 11:32
2007.02.04
эмуляция действий


2-1169148215
malyar
2007-01-18 22:23
2007.02.04
idpop3.delete (удаление письма)


2-1168931007
Alex_06
2007-01-16 10:03
2007.02.04
Создание програмно пунктов основного меню


15-1168780378
FAskerQ
2007-01-14 16:12
2007.02.04
Нужен перевод