使用控件
WordChooser_Table:TADODataSet 连接数据库。初始化时建立下列索引:procedure TForm1.defineOrderIndex;
begin
//定义几个排序索引
//word降序;
WordChooser_Table.IndexDefs.Add('wordDesc','word',[ixDescending,ixCaseInsensitive]);
WordChooser_Table.IndexDefs[0].DescFields := 'word'; //降序排列
WordChooser_Table.IndexDefs[0].CaseInsFields := 'word';//大小写不敏感的
//FaultCounter_E_C降序;word升序
WordChooser_Table.IndexDefs.Add('FC_E2CDesc','FaultCounter_E_C;word',[ixDescending,ixCaseInsensitive]);
WordChooser_Table.IndexDefs[1].DescFields := 'FaultCounter_E_C'; //降序排列
WordChooser_Table.IndexDefs[1].CaseInsFields := 'word';//大小写不敏感的
//FaultCounter_C_E降序,word升序
WordChooser_Table.IndexDefs.Add('FC_C2EDesc','FaultCounter_C_E;word',[ixDescending,ixCaseInsensitive]);
WordChooser_Table.IndexDefs[2].DescFields := 'FaultCounter_C_E'; //降序排列
WordChooser_Table.IndexDefs[2].CaseInsFields := 'word';//大小写不敏感的
//WordChooser_Table.IndexDefs.Update;
end;然后在DBGrid的OnTitleClick事件中调用这些索引:procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin //showmessage(IntToStr(WordChooser_Table.IndexDefs.Count));
case Column.Index of
0: WordChooser_Table.IndexFieldNames := 'id';
1: WordChooser_Table.IndexFieldNames := 'word';
3: begin
WordChooser_Table.IndexName := 'FC_E2CDesc';
//word_Table.Active:=true;
end;
4: word_Table.IndexName := 'FC_C2EDesc';
end;
end;程序运行后如果是进入到case3或者case4总是报错:
raised Exception Class EOleException with message '当前提供程序不支持“索引”功能必须的界面'.请问这个问题怎么解决?谢谢!
WordChooser_Table:TADODataSet 连接数据库。初始化时建立下列索引:procedure TForm1.defineOrderIndex;
begin
//定义几个排序索引
//word降序;
WordChooser_Table.IndexDefs.Add('wordDesc','word',[ixDescending,ixCaseInsensitive]);
WordChooser_Table.IndexDefs[0].DescFields := 'word'; //降序排列
WordChooser_Table.IndexDefs[0].CaseInsFields := 'word';//大小写不敏感的
//FaultCounter_E_C降序;word升序
WordChooser_Table.IndexDefs.Add('FC_E2CDesc','FaultCounter_E_C;word',[ixDescending,ixCaseInsensitive]);
WordChooser_Table.IndexDefs[1].DescFields := 'FaultCounter_E_C'; //降序排列
WordChooser_Table.IndexDefs[1].CaseInsFields := 'word';//大小写不敏感的
//FaultCounter_C_E降序,word升序
WordChooser_Table.IndexDefs.Add('FC_C2EDesc','FaultCounter_C_E;word',[ixDescending,ixCaseInsensitive]);
WordChooser_Table.IndexDefs[2].DescFields := 'FaultCounter_C_E'; //降序排列
WordChooser_Table.IndexDefs[2].CaseInsFields := 'word';//大小写不敏感的
//WordChooser_Table.IndexDefs.Update;
end;然后在DBGrid的OnTitleClick事件中调用这些索引:procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin //showmessage(IntToStr(WordChooser_Table.IndexDefs.Count));
case Column.Index of
0: WordChooser_Table.IndexFieldNames := 'id';
1: WordChooser_Table.IndexFieldNames := 'word';
3: begin
WordChooser_Table.IndexName := 'FC_E2CDesc';
//word_Table.Active:=true;
end;
4: word_Table.IndexName := 'FC_C2EDesc';
end;
end;程序运行后如果是进入到case3或者case4总是报错:
raised Exception Class EOleException with message '当前提供程序不支持“索引”功能必须的界面'.请问这个问题怎么解决?谢谢!
begin
Close;
IndexDefs.Update;
IndexDefs.Add('newIndex','username',[ixDescending,ixCaseInsensitive]);
IndexDefs[0].DescFields := 'username';
IndexName := 'newIndex';
Open;
end;説明:在「IndexDefs」之前、先要関閉「ADODataSet1」