何时打电话 SQLEndTran()

在手动提交模式下,必须先调用 SQLEndTran() ,再调用 SQLDisconnect()

自动提交模式下的应用程序无需调用 SQLEndTran() ,因为每次语句执行结束时都会自动提交。 如果涉及分配的工作单位,则可能适用其他规则。

建议 :如果您的应用程序正在执行更新,请不要等到应用程序断开连接后再提交或回滚事务。

另一个极端是自动提交模式,也不建议使用,因为这会增加额外的处理。 该应用程序可通过启动 SQLSetConnectAttr() 功能来修改自动提交模式。

请考虑以下行为,以决定在应用程序中的哪个位置结束交易:
  • 如果使用CONNECT(类型1) MULTICONTEXT=0 连接 ,则只有当前连接可以有未完成的交易。 如果使用CONNECT(类型2),则所有连接都参与一个事务处理。
  • 如果使用 MULTICONTEXT=1 ,每个连接都可以有一个出色的交易。
  • 在您进行卓越交易时,可以持有各种资源。 交易完成后,资源将释放给其他用户使用。
  • 当交易成功提交或回滚时,可以从系统日志中完全恢复。 公开交易无法撤销。