怎样返回数据库记录行号?

direction 2001-04-11 05:05:00
请教各位,当查找到数据库中的某条记录后,如何返回该记录的行号?
...全文
115 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
luhongjun 2001-04-11
  • 打赏
  • 举报
回复
还是不要用RecNo了。象ALNG(阿良) 先生说的,用主键找。
孩皮妞野 2001-04-11
  • 打赏
  • 举报
回复
秋枫是对的,我用一个PARADOX表和一个ACCESS表做了试验,发现前者支持RecNo而后者RecNo不支持。

说实话我从来不用RecNo,而是用表的主键值来标定一个记录.一个设计合理的表一般会有一个或几个字段的组合作为主键,主键可用于在一个表中唯一标定一个记录。
「已注销」 2001-04-11
  • 打赏
  • 举报
回复
支持行号的数据库不多了
direction 2001-04-11
  • 打赏
  • 举报
回复
阿良,下面是查找按钮点击运行的语句
void __fastcall TForm1::SpeedButton5Click(TObject *Sender)
{
Table1->Open();
TLocateOptions SearchOptions;
SearchOptions.Clear();
SearchOptions << loPartialKey;
bool Los=Table1->Locate("NAME",Edit2->Text,SearchOptions);
Edit5->Text = Table->RecNo;
}
为什么Edit5显示118?记录找到。
孩皮妞野 2001-04-11
  • 打赏
  • 举报
回复
RecNo是当前纪录的记录号。你把找到的纪录变为当前纪录,再读取RecNo, 如果想保留当前记录为置,用TBookMark保留并恢复。为免扰动,可以:

Table1->DisableControls();

//do your job

Table1->EnableControls();




孩皮妞野 2001-04-11
  • 打赏
  • 举报
回复
我先试试。
孩皮妞野 2001-04-11
  • 打赏
  • 举报
回复
他返回你在应用程序中用得着的在当前纪录集中的纪录号。

至于它实际在表中什么位置,不是我们可以和应该知道的,对吗?
direction 2001-04-11
  • 打赏
  • 举报
回复
阿良,不行啊。我在Form中加入Edit1,在查找按钮中加入Edit1->Text=Table1->RecNo; 可运行后返回的值总是118,为什么?
luhongjun 2001-04-11
  • 打赏
  • 举报
回复
ALNG(阿良) 
对于大型
Table1->RecNo;
Query1->RecNo;
恐怕不能返回当前的记录号吧。


孩皮妞野 2001-04-11
  • 打赏
  • 举报
回复
TDataSet::RecNo

如:

[ADO]Table1->RecNo;

[ADO]Query1->RecNo;
孩皮妞野 2001-04-11
  • 打赏
  • 举报
回复
RecNo

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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