Delphi中用Table连接SQL Server为什么得不到RecNO? 总是 -1 ?(50分)

  • 主题发起人 主题发起人 DataL
  • 开始时间 开始时间
肯定是这样的. 它不象*.DBF有物理记录号. 你一定要记录号的话, 只有自己定义

一个标志列.
 
你是如何得到记录号的?
用类似的代码(临时写,可以有误)
try
k := table1.fieldbyname('key').asstring;
Table1.disablecontrol;
table1.first;
while not table1.eof do
begin
if k = table1.fieldbyname('key').asstring then
begin
recordnum:=i;
table1.enablecontrols;
exit;
end;
i:=i+1;
end;
finally
table1.enablecontrols;
end;
 
SQL Server 没有记录号一类的东东。
 
SQL Server 没有物理记录号一类的东东。
但你可以加入一个timestamp类型字段作为逻辑上的计录号.
下面的事情就好办了.8-)
 
在执行查询后, SQl Server 返回一定的记录,这些记录显然是无法用
记录号的形式返回的。你可以用RecordSet的Next, First, 等属性来
获取和使用记录号一样的功能。当然如果是Sql 高手,可用上述方法。
 
改变自己的习惯,必须学习不依靠纪录号编程。
SQL的操作对象是集合。

如果确有需要,最好用recno作主关键字。
 
多人接受答案了。
 
后退
顶部