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

Вниз

TDataSet.Locate не работает по сортированному DataSet   Найти похожие ветки 

 
BPK   (2005-02-10 13:19) [0]

Для отображения данных использую связку: TRxDBGrid + TDataSource + TKbmMemTable

В программе используется сортировка по колонкам

procedure TFrmCompCat.ApplySorting;
var s:string;
   i:integer;
begin
 try
   for i:=0 to sgComps.Columns.Count-1 do begin
     s:=sgComps.Columns[i].FieldName;
     mtComps.AddIndex(s,s,[]);
     mtComps.AddIndex(s+"_DESC",s,[ixDescending]);
   end;
   mtComps.Open;
   mtComps.IndexName:=FGridIndex;
 finally
   while mtComps.ControlsDisabled do mtComps.EnableControls;
 end;
 if DataAvailable then mtComps.First;
//    if not mtComps.Locate("ID",FGridComponent,[]) then mtComps.RecNo:=1;
end;

procedure TFrmCompCat.sgCompsTitleBtnClick(Sender: TObject; ACol: Integer;
 Field: TField);
var Rec:TCompNodeRec;
begin
 Rec:=PCompNodeRec(TV.Selected.Data)^;
 if Rec.SortBy<>Field.FieldName then PCompNodeRec(TV.Selected.Data)^.DescSort:=False;
 if PCompNodeRec(TV.Selected.Data)^.DescSort then begin
   mtComps.IndexFieldNames:="";
   mtComps.IndexName:=Field.FieldName+"_DESC";
   PCompNodeRec(TV.Selected.Data)^.SortBy:=Field.FieldName+"_DESC";
 end
 else begin
   mtComps.IndexName:="";
   mtComps.IndexFieldNames:=Field.FieldName;
   PCompNodeRec(TV.Selected.Data)^.SortBy:=Field.FieldName;
 end;
 mtComps.First;
 PCompNodeRec(TV.Selected.Data)^.DescSort:=not PCompNodeRec(TV.Selected.Data)^.DescSort;
end;


В ходе выполнения программы делаю перемещение к записи с нужным IDом:
if not mtComps.Locate("ID",ID,[]) then mtComps.RecNo:=1;

Если используется восходящая сортировка, то locate находит запись, если нисходящая - то не находит. Как исправить?


 
BPK   (2005-02-11 09:37) [1]

.


 
Johnmen ©   (2005-02-11 09:46) [2]

А что такое TKbmMemTable ?
Посмотри, как в нем реализован Locate. Возможно, там ошибки.



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

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

Наверх




Память: 0.47 MB
Время: 0.032 c
14-1108879176
begin...end
2005-02-20 08:59
2005.03.13
С Днём рождения! 20 февраля


4-1107272219
Tria
2005-02-01 18:36
2005.03.13
Иконка приложения. Как сделать прозрачной?


1-1109442903
Checist [root]
2005-02-26 21:35
2005.03.13
TControl


1-1109693035
Expl
2005-03-01 19:03
2005.03.13
Как определить создан ли экземпляр какого-либо класса?


1-1109266347
ki11er
2005-02-24 20:32
2005.03.13
TShockwaveFlash и интерфейсы ....