当用语句:table1.IndexFieldNames := 'Zf';排序时,如何使其按降序排序?
zf是数值类字段名。
zf是数值类字段名。
解决方案 »
- 线程问题
- 请教如何在不重启动系统的情况下更换网卡的IP
- 类的不同实例取Self地址为什么相同(见内容)?
- -----------------如何安全的关闭知道进程id的应用程序-------------------
- 窗口中点击一按钮时显示别外一外窗口,我写了form2.show为什么出错?
- Crystal Report 打印預覽的問題 高分求救(100)
- 关于网络的问题(菜鸟)
- 如用一TADOQuery连接一些动态表,我要进行新增、修改等操作,该怎么做?
- 请问一下:陈桥五笔5.1使用后总是提示注册,好烦。在长期用户管理,请输入注册码中应输入什么呀。有谁有解决的办法。
- 想名流千古的请进
- 怎样不让Internet页签下的WebBrowser控件出现滚动条?
- 我的动态查询功能出错,哪位高手能帮帮我修改一下,我很需要你的,,,,,,
{$J+}
const PreviousColumnIndex : integer = 0;
{$J-}
begin
if DBGrid1.FieldCount = 0 then
Exit;
if DBGrid1.DataSource.DataSet is TCustomADODataSet then
with TCustomADODataSet(DBGrid1.DataSource.DataSet) do
begin
try
DBGrid1.Columns[PreviousColumnIndex].title.Font.Style :=
DBGrid1.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];
except
end;
Column.title.Font.Style :=
Column.title.Font.Style + [fsBold];
PreviousColumnIndex := Column.Index;
if (Pos(Column.Field.FieldName, Sort) = 1)
and (Pos(' DESC', Sort)= 0) then
Sort := Column.Field.FieldName + ' DESC'
else
Sort := Column.Field.FieldName + ' ASC';
end;
end;我用了一个放在DataModel中的ADOconnection,和放在主界面的ADOQuery和DataSource,当然还有DBGrid和DBNBavegitor。
DESC是降序排列
注意:一定要大写。
with table1 do
begin
close;
Exclusive := true;
DatabaseName := 'd:\aa';
TableName := 'a1.DB';
Open;
Table1.AddIndex( 'ByTTO','TTO',[ixDescending ]);//建立次索引
close; //可不使用,用了关闭table1
end;
table1.open;
// table1.IndexFieldNames := 'TTO'; //不可用
table1.IndexFieldNames := 'Zf'; //可用
以上zf字段是在Database Desktop中建立的索引所以可以使用,而TTO字段是用以上语句建立的索引使用时要出错:“table1:no index for fields 'TTO'”。但在用Database Desktop打开表A1.DB时可以看见次索引已添加成功。