社区
数据库及相关技术
帖子详情
怎么对adotable表进行排序?
ntcxh
2008-02-04 10:59:49
本人在C++BUILDER中,运用DBGRIEDEH与ADOTABLE相连,请问如何能够根据点击DBGRIEDEH的标题栏后进行相应的排序?多谢各位高手的指教。
...全文
217
4
打赏
收藏
怎么对adotable表进行排序?
本人在C++BUILDER中,运用DBGRIEDEH与ADOTABLE相连,请问如何能够根据点击DBGRIEDEH的标题栏后进行相应的排序?多谢各位高手的指教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cygjhjc
2009-09-19
打赏
举报
回复
非常感谢ydlchina,第一种方法是完全可行的,在ADOTable中也不会出现任何错误!
ydlchina
2008-02-04
打赏
举报
回复
这有点资料你参考,原理是一样的(DBGrid)
方法1
自用极品代码:
添加定义:
C/C++ code
TField *FSortField;
void __fastcall SetSortField(TField *Value);
__property TField *SortField = {read=FSortField,write=SetSortField};
C/C++ code
void __fastcall TForm1::SetSortField(TField *Value)
{
static bool DescSort = false;
try {
Screen->Cursor = crHourGlass;
if (FSortField != NULL) {
AnsiString label = FSortField->DisplayLabel;
FSortField->DisplayLabel = label.SubString(1,label.Length()-3); //删除尾部排序字符
}
if (FSortField == Value)
DescSort = !DescSort;
ADOTable1->Sort = Value->FieldName + " " + (DescSort?"DESC":"ASC");
Value->DisplayLabel = Value->DisplayLabel + (DescSort?" -":" +");
FSortField = Value;
}
__finally {
Screen->Cursor = crDefault;
}
}
//排序操作
void __fastcall TForm1::DBGrid1TitleClick(TColumn *Column)
{
SortField = Column->Field;
}
以上代码操作简单,不过只是用+和-表示了正向和逆向,自己可以用画图的方法做漂亮点
方法2
DBGrid1TitleClick事件中写
TADOQuery* temp=(TADOQuery*)DBGrid2- >DataSource- >DataSet;
//temp=NULL;
if(flag==1)//当前是升序
{
temp- >Sort=Column- >FieldName+" DESC";
flag=0;
}
else if(flag==0)//当前是降序
{
temp- >Sort=Column- >FieldName+" ASC";
flag=1;
}
这样就可以了。
DBgridEh- >字段的TitleButton为true并且DBgridEh- >optionEh的dghAutoSortMarking为true时,在title上会出现排序三角形。
void __fastcall TForm1::DBGridEh1TitleClick(TColumnEh *Column)
{
这里写排序代码;
}
ntcxh
2008-02-04
打赏
举报
回复
首先谢谢余粮的帮助,我采用的是第二种方法,可以如果运用的是ADOQUERY是可以的,如果改为用ADOTABLE则提示出错。不过,三角形的标记会出现,出错信息为:在对应所需名称或序数的集合中,未找到项目;
ADO
Table
数据的排序
本文介绍了使用Delphi中
ADO
Table
进行数据排序的两种方法:一种是通过设置sort属性实现升序或降序排列;另一种是利用IndexFieldNames属性进行多字段排序。这两种方法为用户提供了一种简便的方式来对数据进行组织。
一、
ADO
DataSet、
ADO
Table
、
ADO
Query的属性
本文详细介绍了
ADO
DataSet、
ADO
Table
和
ADO
Query 组件的多种属性及其用途,包括 Active、AutoCalcFields、Bof 等,旨在帮助开发者更好地掌握这些组件的配置与使用。
delphi dbgrid_如何在Delphi DBGrid中对记录
进行排序
本文介绍了如何在Delphi的DBGrid组件中增强用户体验,当鼠标移到标题区域时改变鼠标指针样式,并实现点击列进行记录排序。通过设置
ADO
组件的Sort属性,结合DBGrid的OnTitleClick事件,可以实现在用户点击列标题时对数据集进行升序或降序排序。同时,代码会动态调整已排序列的标题字体以突出当前排序状态。
DELPHI7插入排序
本文深入讲解了插入排序算法的基本原理及其实现过程。插入排序是一种简单直观的排序方法,通过构建有序序列,对未排序数据在已排序序列中从后向前扫描,找到相应位置并插入。文章详细解释了其in-place排序特性,以及在扫描过程中如何为新元素提供插入空间。
ADO
组件可以用SORT
进行排序
作者在CSDN看到文章,发现
ADO
的SORT可排序,不限于EHLIB。经测试,其具体用法为TCustom
ADO
DataSet.SORT=字段名1 [DESC],字段名2 [DESC]... 同时发现DELPHI不分大小写,但
ADO
区分,在WIN98+
ADO
2.7+DELPHI 6环境中,DESC用小写会出错。
数据库及相关技术
1,178
社区成员
18,938
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章