我用delphi ado 连接 sybase。使用的是ODBC数据源。  //启用事物
  ADOConnection1.BeginTrans;
  ADOQuery.Close;
  ADOQuery.SQL.Text := sSQL1;  //提示:在事务中,不能存在多个使用此游标类型的记录集!
  try
    ADOQuery.Open 
    。
  。
。为什么啊,我很是不明白啊。 

解决方案 »

  1.   

    应该先判断事务是否已被开启。
    if not ADOConnection1.InTransaction then
        ADOConnection1.BeginTrans;
    try
      .....
      ADOConnection1.CommitTrans; //提交事务
    except
      DataMod.ADOConnection1.RollbackTrans; //异常时,事务回滚. 
    end;
      

  2.   

    事物没有开启判断了。我发现了,重新建一个ADOCon,然后ADOQuery给ADOCon,启用这个新的ADOCon,整个过程再一直用一个ADOQuery。就可以。
    不知道为什么,