以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 两个不同数据源的sql语句,如何写到同一个事务中,代码怎么改啊? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=157846) |
-- 作者:guosheng -- 发布时间:2020/10/30 15:42:00 -- 两个不同数据源的sql语句,如何写到同一个事务中,代码怎么改啊? 下面这种写法对吗? Dim
cmd As new SQLCommand() Dim cmd1 As new SQLCommand() cmd.ConnectionName = "Orders" \'指定数据源 cmd1.ConnectionName = "Orders123" Try Dim id As Integer = 10258 cmd.BeginTransaction() \'开启事务 cmd.CommandText = "Delete Fro m OrderDetails Where OrderID = " & id cmd.ExecuteNonQuery() \'继续使用同一个SQLCommand执行其它SQL语句. cmd1.CommandText = "Delete Fro m Orders Where OrderID = " & id cmd1.ExecuteNonQuery()
cmd.Commit() \'提交事务 cmd1.Commit() \'提交事务 Catch ex As Exception \'如果出错 cmd.Rollback() \'则回滚事务 cmd1.Rollback() \'则回滚事务
MessageBox.Show(ex.Message, "错误",MessageBoxButtons.OK,MessageBoxIcon.Error) End Try [此贴子已经被作者于2020/10/30 15:44:37编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/10/30 15:52:00 -- 没有办法。事务仅支持同一个数据源 |
-- 作者:guosheng -- 发布时间:2020/10/30 15:58:00 -- 串行执行两个事务,依次,事务1 和事务2 保证事务1 和 事务2 都执行完整,有什么优化方法吗
|
-- 作者:有点蓝 -- 发布时间:2020/10/30 16:07:00 -- 没有,分离的事务没有办法保持完整。 |
-- 作者:guosheng -- 发布时间:2020/10/30 22:25:00 -- 银行转账或支付,微信支付宝支付,应该用的是多个数据库吧,它保障数据完整性用的是什么技术或原理啊? |
-- 作者:有点蓝 -- 发布时间:2020/10/31 9:56:00 -- 一个业务一般都是使用一个数据库,然后做冗余和集群。而不是使用多个数据库。 也不是不可以做,但是涉及到的工时和成本不是一般人能够承受的。
|