用Delphi 作数据库(200分)

  • 主题发起人 主题发起人 liuming
  • 开始时间 开始时间
L

liuming

Unregistered / Unconfirmed
GUEST, unregistred user!
TTable.RecNo 属性作用于 ACCESS97 时,总是返回 -1,
有无一种简单方法,知道ACCESS97 数据库的一个表中当前记录号,

在所有Delphi 介绍中,RECNO 属性只适用于 Paradox and xDbase,不
适用于其它,真是不能理解为何 inprise 公司要这样做
 
以为Paradox and xdbase是borland的!
没有什么办法!
 
没有回答,积 0 分
 

这是数据库引擎的区分,比如oracle里面有伪列:rownum可以用

access数据库是无法用Recno的
 
SQL类数据库是没有记录号的概念的。
不过,一般我们需要的也就是暂时记住某些记录,
这样的话,不妨使用Tdataset.bookmark,
具体使用,help有实例。
 
不是我没有回答!人家没提供功能!有什么办法!
 
编段程序从第一条记录开始数数到当前记录, 不就得到“记录号”了吗?
 
有解决方法,我正在测试,通过后,我将结果告诉大家
 
别告诉我是用继承TDataSet来实现哦
那玩意不准
 
忘掉记录号是最好的方法,sql嘛,如果确实要用记录号,加一个字段不行吗?
用他记着记录号。
 
做一个虚拟字段
虚拟字段的数值在 oncalcfields 事件里
给这个字段赋数值, 这个数值用一个递增变量给出

var i:integer;

procedure tform1.table1oncalcfields(sender:Tobject);
begin
inc(i);
table1.fieldbyname('your_id').AsInteger:=i;
end;
your_id字段是你虚拟出来的整数字段,一切就OK
 
同意yaojiaqing的做法, 加一个RecordID字段
 
还是用BOOKMARK好,可以设许多BOOKMARK,不必用RECNO。
 
to 王寒松:思路不错,程序不对!
 
用 mODBC 试试。
 
向所有朋友们问新年好!万事如意!以下网站是用作贺卡的,不知是否有用?

http://www.computerdaily.com/info/site/site4.html
 
对于Access的连接,BDE是通过SQL进行的,所以无法处理记录号,
简单的解决办法是加一辅助自动递增字段(AutoIncField),
用来模拟记录号.
 
多人接受答案了。
 
后退
顶部