用TClientDataSet新增一条记录到库中,成功了,但是取不回它的IID,IID为库中自增的字段,也是主键

解决方案 »

  1.   

    用sql 取,.net也是这么搞的。
      

  2.   

    呵呵  刚在开发中也遇到这样的情况
    自增的字段在刚POST之后是不能立刻取到它的数值的,具体原因还搞不清楚
    我的解决是新增一个数字型的字段NEWID代替,但是每次增加前要查询数据库看NEWID的最大值,
    然后自己赋予它这个最大值加1
      

  3.   

    ClientDataSet1.ApplyUpdates(0);//更新之后立即刷新一下
    ClientDataSet1.Refresh;//刷新
    不过这并不是最好的解决方案
    因为Refresh会占资源
    而且Refresh会根据服务器Provider最后一条SQL语句去Refresh
    所以建议不要去自增长ID作主键