ClientDataSet中 使用AddIndex排序的問題 |
答題得分者是:Chance36
|
johnny2212
初階會員 發表:34 回覆:65 積分:39 註冊:2003-04-09 發送簡訊給我 |
我使用單一鍵作排序,是沒問題的
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
ClientDataSet1.IndexDefs.Clear;
ClientDataSet1.AddIndex (Column.FieldName 'IndexAsc',Column.FieldName,
[ixCaseInsensitive],'','',0);
ClientDataSet1.IndexName:=Column.FieldName 'IndexAsc';
end; 但是我使用兩個以上的鍵,卻無法正確排出
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
ClientDataSet1.IndexDefs.Clear;
ClientDataSet1.AddIndex (Column.FieldName 'IndexAsc',Column.FieldName,
[ixCaseInsensitive],'','',0);
ClientDataSet1.AddIndex('Field1' 'IndexAsc','Field1',
[ixCaseInsensitive],'','',0); // ClientDataSet1.IndexDefs.Update;//此行沒有影響 ClientDataSet1.IndexName:=Column.FieldName 'IndexAsc';
ClientDataSet1.IndexName:='Field1' 'IndexAsc';
//結果排序是使用 'Field1' 'IndexAsc',好像後面的IndexName把前面的蓋掉了
end; 而後我用Delphi Help提供的寫法,改成如下
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
i Integer;
begin
ClientDataSet1.IndexDefs.Clear;
ClientDataSet1.AddIndex(Column.FieldName 'IndexAsc',Column.FieldName,
[ixCaseInsensitive],'','',0);
ClientDataSet1.AddIndex('Field1' 'IndexAsc','Field1',
[ixCaseInsensitive],'','',0);
ClientDataSet1.IndexDefs.Update;//此行要寫才有作用 for I := 0 to ClientDataSet1.IndexDefs.Count-1 do
ClientDataSet1.IndexName := ClientDataSet1.IndexDefs.Items[i].Name;
ClientDataSet1.First;
//但排序只依照Column.FieldName作排序,
//而且ClientDataSet1.IndexDefs.Clear 這一行好像是無效的,
// 因為先前的TitleClick 的Index都會保留下來
end; 我並不想用ClientDataSet1.IndexFieldNames:='Field1;Field2',因為
太麻煩了,而且會有奇怪的問題(如Insert後的資料,無法納入排序) 請問我要如何使用AddIndex作複合鍵的排序?
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
|
johnny2212
初階會員 發表:34 回覆:65 積分:39 註冊:2003-04-09 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: 也就是在Insert一筆資料之後,此筆新增的 資料,不會按照兩個Index作排序(此筆新資料會按照第一個Index排序,但 是不會按照第二個Index作排序,他會排到第一位)不是很清楚你說的問題,所謂的第一個Index 是指第一個IndexField吧! 新增記錄的排序,是要等到post之後,它才會納入到索引中的,在Post之前,因為資料尚未完全確定,所以ClientdataSet並未將該筆記錄排進索引。你說的是這個問題嗎? _______________________________________ 深藍的魚,祝您好運..........連連 |
johnny2212
初階會員 發表:34 回覆:65 積分:39 註冊:2003-04-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |