为什么我在ltBatchOptimistic locktype下,我用updatebatch(arall)每次保存只有第一条新增的纪录被保存,其他的都没被保存,也无错误提示。用SQL server的事件探查器观察,确实只有第一条记录被保存。

解决方案 »

  1.   

    我把触发器中的commit tran去掉就好了,奇怪?为什么
      

  2.   

    你确认你的BatchUpdat模式(相当于Bde中的CachedUpdate)设置正确。
    正确的设置为:
    CursorType: KeySet或Static
    LockType: BatchOptimistic
    CursorLocation: clUserClient
    另外,执行的必须是Select语句。如果上面的设置都正确,那么可能是因为你在保存第一条记录的时候,触发器的代码执行了,而在你的触发器代码中,又有提交事务的语句,所以只保存了第一条记录。