TTable数据排序的问题。
利用TTable连接一个Paradox数据库表,建立了一个二次索引字段(如Depth),用于数据排序。在程序设计阶段,将Table的IndexName设置为该索引字段名,但是,程序一运行,就报错说“Index out of date”。这是什么原因那?另外如何才能实现TTable数据表的排序呀? 问题点数:0、回复次数:9Top
1 楼cronuz(cronus)回复于 2004-08-03 08:40:07 得分 0
with Table1 do
begin
IndexDefs.Add('index1','yourField1;yourField2',[ixCaseInsensitive, ixDescending]);
IndexDefs[0].CaseInsFields := 'yourField1';
IndexDefs[0].DescFields := 'yourField2';
IndexName := 'index1';
Active := true;
end;
(注:還可手動設定)Top
2 楼changchungu()回复于 2004-08-03 12:13:24 得分 0
不行呀。
在设计期我手动设定Table1的IndexDefs属性,设置一个IndexDefs[0],定义了其Fields为一个数据库字段名,其它属性未设置。
在运行时,如下代码:
procedure TForm1.N7Click(Sender: TObject);
var
I:Integer;
begin
Table1.Active:=false;
Table1.Exclusive:=true;
Table1.IndexDefs.Update;
for I:=0 to Table1.IndexDefs.Count-1 do
if Table1.IndexDefs[I].Fields='PosStart' then
Table1.IndexName :=Table1.IndexDefs.Items[I].Name;
Table1.Exclusive:=false;
Table1.Active:=true;
end;
可是程序报错说:"Index out of date".是什么原因啊。
Top
3 楼y31307(31307)回复于 2004-08-03 12:33:24 得分 0
table1.sort:=table1.indexdefs.items[i].nameTop
4 楼cronuz(cronus)回复于 2004-08-03 12:58:01 得分 0
実在不行、在Paradox数据库環境下建一個索引文件。
CREATE INDEX yourIndex
ON yourTable ( yourField1, yourField2 )Top
5 楼changchungu()回复于 2004-08-03 13:55:01 得分 0
大家帮我想想办法啊Top
6 楼y31307(31307)回复于 2004-08-03 17:50:18 得分 0
其实答案就在以下的问题中
http://community.csdn.net/Expert/topic/2741/2741282.xml?temp=.8439447
只不过换个事件就可以了。Top
7 楼anbangs(大邦)回复于 2004-08-03 17:55:00 得分 0
procedure TFormMain.MyDBGridTitleClick(Column: TColumn);
var i:integer;
begin
if AdoQCX.Sort = Column.FieldName then
begin
For i:=0 to MyDBGrid.Columns.Count-1 do
MyDBGrid.Columns[i].Title.RestoreDefaults;
AdoQCX.Sort := Column.FieldName + ' DESC';
Column.Title.Font.Color:=clPurple;
end
else begin
For i:=0 to MyDBGrid.Columns.Count-1 do
MyDBGrid.Columns[i].Title.RestoreDefaults;
AdoQCX.Sort := Column.FieldName;
Column.Title.Font.Color:=clBlue;
end;
end;
Top
8 楼wychero(高天)回复于 2004-08-03 18:00:52 得分 0
同意 cronuz(cronus)Top
9 楼changchungu()回复于 2004-08-04 10:27:49 得分 0
to y31307 and anbangs:我用的是BDE的TTable,而不是ADO的TADOTable。TTable没有Sort属性,我看了TTable的帮助,似乎只能用IndexName属性来实现排序。Top




