社区
数据库及相关技术
帖子详情
怎么对adotable表进行排序?
ntcxh
2008-02-04 10:59:49
本人在C++BUILDER中,运用DBGRIEDEH与ADOTABLE相连,请问如何能够根据点击DBGRIEDEH的标题栏后进行相应的排序?多谢各位高手的指教。
...全文
108
4
打赏
收藏
怎么对adotable表进行排序?
本人在C++BUILDER中,运用DBGRIEDEH与ADOTABLE相连,请问如何能够根据点击DBGRIEDEH的标题栏后进行相应的排序?多谢各位高手的指教。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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则提示出错。不过,三角形的标记会出现,出错信息为:在对应所需名称或序数的集合中,未找到项目;
delphi 如何排序过滤数据库记录.
delphi 如何排序过滤数据库记录.对初学者帮助很大的
ADO
DataSet、
ADO
Table
、
ADO
Query的属性
NULL 博文链接:https://tengguanbing.iteye.com/blog/1769320
delphi 应用技巧
delphi delphi delphi
ADO
课件
介绍
ADO
知识的好课件
unidbgrid图例
unidbgrid图例
数据库及相关技术
1,178
社区成员
18,939
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章