database - 在 Delphi 中,TADOStoredProc 可以在 BeginTrans/CommitTrans 中执行吗?
问题描述
我们目前有一个服务,它执行一个循环,加载一个 TADStoredProc(通过 StoredProc.Parameters.CreateParameter),然后执行一个 ExecProc 将其插入到我们的表中。
有没有办法可以将整个循环包装在 TADOConnection.BeginTrans 中,然后用 ADOConnection.CommitTrans 完成?基本上我希望做一个批量插入。
解决方案
是的,可以在事务内部调用存储过程,并且在事务提交之前,任何插入/删除/修改的记录都不会应用于数据库,例如:
ADOConnection1.BeginTrans;
try
// execute TADOStoredProc as many times as you need...
ADOConnection1.CommitTrans;
except
ADOConnection1.RollbackTrans;
raise;
end;
推荐阅读
- c# - 使用 Windows 服务执行的子进程中的 DirectX
- json - 在 Angular 6 中使用递归的树结构
- php - 在特定路由上禁用 Cookie - Laravel 5.7
- java - 如何编写junit来测试并发?
- android - 如何以编程方式为 TextInputLayout 设置 colorControlActivated
- mysql - 如何从第二个表中插入 mySQL 中的最后一条评论?
- go - 如何使用 exec.Command() 打开 Chrome 窗口?
- python - ImportError:没有名为“支持”的模块
- javascript - 将 vue-router 与 vuetify 组件一起使用
- vba - VBA 字分配表标题行