是不是我用错了代码?
Procedure TForm1.button1Click(Sender:Tobject);
var
i:Integer;
begin
i := Table1.RecNo;
或
i:= Query1.RecNo
end;
i返回-1??????
10 个解决方案
#1
你的数据集open了吗
#2
不错
#3
当然Open了,否则DBGrid上不会有值。
#4
对于SQL,ORCAL,就会有这样的错误。
如果是PARADOX,或 DBASE。
如果是PARADOX,或 DBASE。
#5
只要你没有FIRST
#6
跟FIRST没有关系的
#7
RDBMS中的SQL结果集,其RecordNo和RecordCount是不可测的
#8
RecordNo只对桌面数据库有效,对于大型数据库,总是返回-1;而RecordCount对大型数据库时返回的数值不一定是对的,据我的经验,第一次Open之后,RecordCount是对的,一旦对数据库进行了修改提交,这个值就是错的了。
以上两点在Delphi的帮助中已经有说明了。
以上两点在Delphi的帮助中已经有说明了。
#9
所以先QUREY。FIRST,然后再LAST就可以得到正确结果了。
#10
SQL server,Access等数据库的新加记录是随机存放的,默认没有游标。
所以RecNo参数返回是-1,所在处理这类数据库时不要使用RecNo来取得当前位置。
用WHERE条件来定位就行了
所以RecNo参数返回是-1,所在处理这类数据库时不要使用RecNo来取得当前位置。
用WHERE条件来定位就行了
#1
你的数据集open了吗
#2
不错
#3
当然Open了,否则DBGrid上不会有值。
#4
对于SQL,ORCAL,就会有这样的错误。
如果是PARADOX,或 DBASE。
如果是PARADOX,或 DBASE。
#5
只要你没有FIRST
#6
跟FIRST没有关系的
#7
RDBMS中的SQL结果集,其RecordNo和RecordCount是不可测的
#8
RecordNo只对桌面数据库有效,对于大型数据库,总是返回-1;而RecordCount对大型数据库时返回的数值不一定是对的,据我的经验,第一次Open之后,RecordCount是对的,一旦对数据库进行了修改提交,这个值就是错的了。
以上两点在Delphi的帮助中已经有说明了。
以上两点在Delphi的帮助中已经有说明了。
#9
所以先QUREY。FIRST,然后再LAST就可以得到正确结果了。
#10
SQL server,Access等数据库的新加记录是随机存放的,默认没有游标。
所以RecNo参数返回是-1,所在处理这类数据库时不要使用RecNo来取得当前位置。
用WHERE条件来定位就行了
所以RecNo参数返回是-1,所在处理这类数据库时不要使用RecNo来取得当前位置。
用WHERE条件来定位就行了