delphi 7.0
sql2008r2
BDE 连接引擎      DataSet.FieldByName('abc').AsInteger := DataSet.RecNo;
为什么得到的DataSet.recNo 的值都是-1  看了网上的帮助 说因为获取当前行时数据没有提交所以为-1那么如何能实现获取当前行呢。 
 ado的方法就不要说了

解决方案 »

  1.   

    如果你使用的TDataSet子类确实实现了recNo这个属性的话,你可以先执行Post,然后再进入Edit状态,再执行你提到的语句,就可以取到有效值了。
      

  2.   

    在编辑前,将记录号保存在一个变量中。
    var
      Temp :integer;
    begin
      Temp := DataSet.RecNo; 
      DataSet.Edit;
      DataSet.FieldByName('abc').AsInteger := Temp;
      //......
      DataSet.Post;
    end;
      

  3.   

    将DataSet的数据显示出来看看是否真的没有数据