社区
.NET技术其他语言
帖子详情
请教数据库事务问题
whedward
2002-07-24 10:10:08
如果用的是OleDbDataAdapter和OleDbCommandBuilder进行数据库的更新,可是如果中间出错,那么想能回滚,那么如何进行?
是不是一定要自己写上四个数据库更新命令,然后对这些命令进行数据库事务管理呢?
...全文
61
8
打赏
收藏
请教数据库事务问题
如果用的是OleDbDataAdapter和OleDbCommandBuilder进行数据库的更新,可是如果中间出错,那么想能回滚,那么如何进行? 是不是一定要自己写上四个数据库更新命令,然后对这些命令进行数据库事务管理呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
comy
2002-08-01
打赏
举报
回复
既然是关系到另外的数据集的更新,那就做成一个事务啊,为什么还要分开?搞不懂你怎么想的
whedward
2002-08-01
打赏
举报
回复
都是说的单个数据库的更新命令组成的数据库事务,如果用的是网格控件绑定一个数据源,而同时又关联着另一个数据集的更新,那么有这样的事务管理方法吗?
这种要求应该会有的吧,我们不可能总是把网格控件简单的对应到一个数据集吧!
scook
2002-07-30
打赏
举报
回复
详细一点!
comy
2002-07-28
打赏
举报
回复
page_unload 里面
Trans.Commit();
comy
2002-07-28
打赏
举报
回复
page_load 里面
OleDbTransaction Trans;
Trans=conn.BeginTransaction();
whedward
2002-07-28
打赏
举报
回复
对于单个命令当然会处理了,可是如果用的是OleDbDataAdapter和OleDbCommandBuilder呢?
那么用数据适配器进行update()时就不可能用单个命令的事务管理方法了吧,是不是一定要自己写上那四个更新命令,然后在调用数据适配器的update()方法前对四个命令都用上事务管理方法的开始一个事务,如要提交时,也用四个命令进行Commit()之类的呢?
MS不会没想到用数据集时,数据库操作仍会有事务管理的要求吧?
对单个数据集也没什么问题,可是如果我多个数据集之间有关联,要么全部更新成功,要么全部回滚,那可咋办?
comy
2002-07-24
打赏
举报
回复
OleDbTransaction Trans;
Trans=conn.BeginTransaction();
try
{
OleDbCommand cmd=new OleDbCommand(sql,conn,Trans);
//.................
Trans.Commit();
}
catch
{
Trans.RollBack();
//...........
}
fxhsz
2002-07-24
打赏
举报
回复
极度关注
三级
数据库
真题与答案
三级
数据库
真题大全同时有答案,希望对大家有用
数据库
系统概论试卷及部分答案
本人搜集的
数据库
系统概论 试卷 答案 希望对大家有所帮助 疏漏之处还望见谅
java连接
数据库
一个小例子关于Java连接
数据库
,向前辈们
请教
学习。
数据库
实训小结.doc
数据库
实训小结.doc
C#开发基于FreeSql多库分布式
事务
、跨库查询、跨库分页查询、跨库增删改等功能实现源码+项目说明+sln.zip
1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载体验!下载完使用
问题
请私信沟通。 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有
问题
或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【资源说明】 C#开发基于FreeSql多库分布式
事务
、跨库查询、跨库分页查询、跨库增删改等功能实现源码+项目说明+sln.zip **前言** 话说2021年开始了一个基于ASP.NET Core 微服务的项目,谈到微服务 多库环境下 分布式
事务
、分库分表这些
问题
都是逃不开的,于是首先从ORM开始调研,需要考虑到一些重要的因素 **功能强大、支持多种
数据库
(并且行为一致,防止出现换库的情况)、支持分库分表** 等等,这时候第一时间就想到了 [FreeSql](https://github.com/dotnetcore/FreeSql) ,FreeSql的架构设计非常好,每一种支持的
数据库
都有对应的Provider实现 做到行为一致,而且支持CodeFirst和DbFirst,分库分表FreeSql也有比较简单切有效的方案,本人也经常向FreeSql的作者叶老板
请教
学习,非常佩服他的技术与人品,也非常感谢他能做出这么好的ORM框架。 **分布式
事务
** 既然分库了 分布式
事务
怎么处理,说到分布式
事务
常见的解决方案有TCC/SAGA/消息队列最终一致性,在.NET生态中有基于消息队列实现的分布式
事务
[CAP](https://github.com/dotnetcore/CAP) ,TCC和SAGA调研了很久没有发现有比较成熟的实现,那么就决定使用`CAP(最终一致性
事务
)` 由于项目持续的改版,业务的实时性变得越来越高,基于消息队列的这种最终一致性或者说异步
事务
的方案 越来越不适合我们的项目,这时候就需要同步的
事务
方案,TCC/SAGE又没有太好的解决方案(我真的没有找到。。),于是想着自己设计一个,基于FreeSql实现
事务
管理器。 想要的效果:和单库
事务
一样,出现错误回滚 但是
问题
来了 多库呢?不同的
数据库
呢? * 在多库
事务
的开启时,每个库管理开启自己的
事务
* 如果某一个库
事务
开启后的操作出现异常,则回滚全部
数据库
事务
* 在多库
事务
提交时,每个库的
事务
统一提交 * 记录日志,第一个执行Common的
数据库
称之为主库,会自动创建一个日志表,用于记录多库
事务
的信息、执行的SQL、业务模块 用于人工介入或者
事务
补偿 * 如果主库(第一个库)Common成功后,其他某一个库可能由于网络原因、
数据库
宕机 无法Common
事务
,导致数据不一致,这时候要根据日志进行
事务
补偿或者人工介入,例如 存在三个库(订单库、物流库、商品库) 订单库就是主库(会记录日志) 在Common
事务
时,如果订单库(主库)Common失败,则(订单库、物流库、商品库)
事务
全部回滚,如果`订单库`(主库)Common成功,但是`物流库`由于其他原因无法Common成功 则会被日志记录并跳过,然后再去Common `商品库` 以及其他库.. **跨库查询/跨库分页查询** 通过时间分片定位、事件委托、分页算法实现跨库分页查询 1.appsettings.json配置 2.初始化
数据库
3.获取IFreeSql操作对象 5.跨库分页查询 6. 跨库增删改 7.跨库并行查询(不分页) 8.跨库ToOne查询 9.跨库Any查询 10.分布式
事务
、多库
事务
.NET技术其他语言
1,979
社区成员
12,447
社区内容
发帖
与我相关
我的任务
.NET技术其他语言
.NET技术 其他语言讨论
复制链接
扫一扫
分享
社区描述
.NET技术 其他语言讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章