社区
数据库及相关技术
帖子详情
怎么对adotable表进行排序?
ntcxh
2008-02-04 10:59:49
本人在C++BUILDER中,运用DBGRIEDEH与ADOTABLE相连,请问如何能够根据点击DBGRIEDEH的标题栏后进行相应的排序?多谢各位高手的指教。
...全文
111
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 中,通常使用 TDataSet 组件(如 T
Table
、TQuery 或 TDataSource)来操作数据库记录。排序可以通过以下步骤实现: 1. **设置...
ADO
DataSet、
ADO
Table
、
ADO
Query的属性
例如,你可以用
ADO
Query执行SQL查询,然后通过其返回的Recordset来操作数据,或者将Recordset绑定到
ADO
Table
,以便进行更复杂的操作如排序和过滤。
ADO
Table
和
ADO
DataSet也可以独立使用,比如直接从数据库连接获取...
delphi 应用技巧
ADO
Table
提供了一个 `Sort` 属性,允许开发者直接对数据集
进行排序
。通过设置这个属性,你可以指定基于哪个字段
进行排序
,以及是升序还是降序。例如: ```delphi
ADO
Table
.Sort := 'FieldName DESC'; // 降序...
ADO
课件
在
ADO
Table
中,数据项可以通过FieldByName或Fields属性进行访问。可以使用AsVariant、AsString、AsInteger、AsFloat、AsCurrency、AsDateTime和AsBoolean等转换函数来转换数据类型。例如,获取名为"Name"的字段内容...
unidbgrid图例
1. **数据绑定**:UnidbGrid能够直接绑定到数据库
表
或查询,通过
ADO
Table
、SQLQuery等组件将数据库中的数据实时显示在网格中。 2. **列设置**:可以自定义列的显示,包括标题、宽度、对齐方式、是否可编辑等属性。...
数据库及相关技术
1,178
社区成员
18,939
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章