通过以下方式调用:
ADOConnection1.BeginTrans;   //开始事务
try
  while not cdstmp.eof do
  begin
    ...
    ADOStoredProc1.Execute;
    cdstmp.next;
  end;
  ADOConnection1.CommitTrans; //提交事务
except
  on E: Exception do
  begin
    ADOConnection1.RollbackTrans; //如有异常,事务回滚
    ShowMessage(E.Message);
  end
end;
以前类似的操作也是这样做的,都没有问题。
偏偏这一次第一行不能保存,为什么?????
已经困惑我很久了,帮帮我吧!!!!!

解决方案 »

  1.   

    把事务去掉是好的
    while not cdstmp.eof do 
    begin 
      ... 
      ADOStoredProc1.Execute; 
      cdstmp.next; 
    end; 
      

  2.   

    行一次过程,当然是没有内容保存进数据库。事务探查结果: 
    1. set   implicit_transactions   on 开始事务 
    2. EXEC spInsert 'xx', 'xx' 保存第一条记录 
    3. SET NO_BROWSETABLE ON     
    4. SET FMTONLY ON EXEC spInsert ' ', ' ' SET FMTONLY OFF     
    5. set fmtonly off    (其他正确的类似操作,跟踪时没有这一句?????) 
    6. 提交事务 
      

  3.   

    从sql探查可以看出每一步都正确