从DBGrid显示序号想到字段OnGetText()事件的应用,请huang_jihua(不懂学习)领分!

BCB 2003-03-19 10:21:05
http://expert.csdn.net/Expert/topic/1465/1465872.xml?temp=.2629816
上要求DBGrid显示序号,我们自然定势地联想到用计算字段,以前我就试过,结
果第一条与最末一条显示的序号是-1,而Eof,Bof测试不准,这个问题虽小,但
一直没解决, 而 [huang_jihua(不懂学习)] 提出在 字段OnGetText()事件中
实现,顺利解决,这个OnGetText事件从没注意过它,OnGetText还可实现如性
别: 1/0,实际显示成: 男/女 的功能等等,BCB有许多暗藏的功能尚未试过,
需大力挖掘,所以这次非常感谢 [huang_jihua(不懂学习].
...全文
122 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
BCB 2003-03-25
  • 打赏
  • 举报
回复
微软原先是用DAO的,后来却放弃了DAO而改成了ADO,
我怀疑DAO的技术有问题,例如连记录号功能都不支持
huang_jihua 2003-03-19
  • 打赏
  • 举报
回复
不好意思,没帮什么大忙,却要领分,谢谢,分还是喜欢的。
jishiping 2003-03-19
  • 打赏
  • 举报
回复
不过说句实在话,程序中还是不要使用RecNo,好像不是所有的数据库都支持这个属性的。
除非你的程序就固定使用某种数据库(而且这种数据库支持RecNo这个属性)。
BCB 2003-03-19
  • 打赏
  • 举报
回复
在DBGrid中加序号,不一定非要用计算字段,
其它字段同样可以,如:加一个序号字段,在它的
OnGetText()事件中:
void __fastcall TForm1::ADODataSet1noGetText(TField *Sender,
AnsiString &Text, bool DisplayText)
{
int r=Sender->DataSet->RecNo;
Text=(r==-1)?String(""):String(r);
}



BCB 2003-03-19
  • 打赏
  • 举报
回复
Text=(r==-1)?String(""):String(r); //
BCB 2003-03-19
  • 打赏
  • 举报
回复
void __fastcall TForm1::ADODataSet1noGetText(TField *Sender,
AnsiString &Text, bool DisplayText)
{
int r=Sender->DataSet->RecNo;
Text=(r==-1)?"":String(r);
}
BCB 2003-03-19
  • 打赏
  • 举报
回复
To jishiping(JSP 季世平) :
在BDE里,RecNo常为-1,连RecordCount都不可靠,我有一次
Access本地库,实际记录相差几十,
但ADO里,还没听说过没有记录号的情况,看样子这记录号
是微软在ADO里就加上的,与库本身无关,我是猜的

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧