大虾们:
我有一个DB数据库,想把他以一个字段(类型为short )排序?
该怎么办?
我有一个DB数据库,想把他以一个字段(类型为short )排序?
该怎么办?
解决方案 »
- 请问:怎样将Excel另存为html文件
- 怎么用PostMessage消息传送方式销毁一个控件!??
- 相信所有程序員都碰到過!!!!
- 关于用PrintDBGridEh1打印
- 在CORBA DATA MODULE中,怎样捕获错误。
- delphi启动问题
- 多个bpl 如何打包成一个BPL 让EXE只调用一个bpl
- 210分求解答,关于数据库并发事务的问题,有多台工作站同时从服务器取数据。。。。(icehill)
- 用什么函数确定某一字符串在COMBOBOX中的位置
- 请问网上和书店哪儿能找到串口通信编程的详细资料(DELPHI4.0 OR UP)
- 关于两个日期之间的天数
- 关于写Excel文件的一处错误
碰到问题查不到,花了半天时间作了一个,不敢独享。
ADO类的数据集有Sort,但是TClientDataSet没有,故作。procedure SortCDS(Column:TColumn);
function FindColumn(Grid:TDbGrid;Name:string):TColumn;
var
i:integer;
begin
Result:=nil;
for i:=0 to Grid.Columns.Count-1 do
if Grid.Columns.Items[i].FieldName=Name then
Result:=Grid.Columns.Items[i];
end;
var
DataSet:TClientDataSet;
ASC:boolean;
Clm:TColumn;
begin
DataSet:=TClientDataSet(Column.Field.DataSet);
if Assigned(DataSet) and (not DataSet.IsEmpty) then
begin
if DataSet.IndexName=Column.Fieldname then
ASC:=StrPos(PChar(Column.Title.Caption),'▼')<>nil;
Clm:=FindColumn(TDbGrid(Column.Grid),DataSet.IndexName);
if Assigned(Clm) then
begin
DataSet.DeleteIndex(DataSet.IndexName);
Clm.Title.Caption:=Copy(Clm.Title.Caption,1,Length(Clm.Title.Caption)-2);
end;
if Asc then
begin
DataSet.AddIndex(Column.Fieldname,Column.FieldName,
[ixCaseInsensitive,ixDescending]);
Column.Title.Caption:=Column.Title.Caption+'▲';
end
else begin
DataSet.AddIndex(Column.Fieldname,Column.FieldName,[ixCaseInsensitive]);
Column.Title.Caption:=Column.Title.Caption+'▼';
end;
DataSet.IndexName:=Column.Fieldname;
end;
end;
select * from tablename order by fieldname ASC
降序:
select * from tablename order by fieldname DESC