ACCESS 中关于记录号,记录数,求教(100分)

  • 主题发起人 主题发起人 hjy2000
  • 开始时间 开始时间
H

hjy2000

Unregistered / Unconfirmed
GUEST, unregistred user!
1。TTable.RecNo 属性作用于 ACCESS97 时,总是返回 -1,
有无一种方法,知道ACCESS97 数据库的一个表中当前记录号?
2。Table->recordcount 得到总记录数,但若在库打开时非法退出程序(死机,掉电)后
重新执行程序获得的记录数就与实际不同我遇到实际库中有条却返回15条
为何,如何解决?

谢谢
 
1.你是用ODBC连接的ACCESS数据库吧,用ODBC连接的数据库,Delphi把它当作远程数据库,
对远程数据库Delphi是不会显示当前记录号的,这在Delphi的帮助里好像还是在《Delphi
入门与精通》中提到过。
2。我也不知道

建议:你把Delphi升级到5.0,如果已经5.0,建议安装升级包,听说有BDE等方面的提高。
 
1.agree with wrong

2. use TQuery to get recordcount!!

var
tmpcnt:integer;

begin
...
with tmpQuery do
begin
sql.text:='select count(*) from yourtable';
Open;
tmpcnt:=Fields[0].asInteger;
Close;

end;
...
end
 
to :wrong my use BDE
to jqw:my use TTable,再说库一大此方法就慢啦
 
>>my use TTable,再说库一大此方法就慢啦
to hjy2000:
query1可以随时生成的,最好能编一个查纪录数的函数:

function GetTableRecordCount(tmpTablename:string):integer;
var
tmpcnt:integer;
tmpQuery:TQuery;
begin
tmpQuery:=TQuery.Create(nil);
with tmpQuery do
begin
databasename:=yourdatabase.databasename;//
SQL.Text:='select count(*) from '+tmpTablename;
try
Open;
tmpcnt:=Fields[0].asInteger;
except
tmpcnt:=0;
end;
Close;
Free;
end;
result:=tmpCnt;
end;


 
试试先把记录移动到最后一个,再移动到第一个。然后用Table->recordcount
就是Table->last;Table->first;Table->recordcount.请多指教。
 
接受答案了.
 
后退
顶部