我的COM+对象的MTS怎么不起作用?

handsomebaby 2003-04-06 09:21:10
编写了一个支持MTS的COM+对象,其中的一个METHOD调用是先在一个表中插入一条记录,然后再在另一个表中插入数据,使用ADO操作!在COM+中把对象配置成事物需要,但是,好象我的COM+对象不支持事务回滚!?问题现象为:当一个插入操作成功,而第二个插入操作失败时,在数据库中出现脏数据!
声明,当出现这种情况时,我的METHOD返回的HRESULT用FAILED测试为真哦!
大家多发表点意见哦。
...全文
85 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
handsomebaby 2003-04-20
  • 打赏
  • 举报
回复
我也是如此啊,不过我的事务好象不能回滚啊!
yangyah 2003-04-14
  • 打赏
  • 举报
回复
不好意思,上面第一种方法说错了,就是加TRANSACTION_REQUIRED,//需要事务
的地方错了,应该如下
[
uuid(D7FB9856-CCF2-4081-B6D2-B394B7B3F1B6),
TRANSACTION_REQUIRED, //需要事务
helpstring("StockModifier Class")
]
coclass StockModifier
{
[default] interface IStockModifier;
};
另外,还要在
import "oaidl.idl";
import "ocidl.idl";
之后加上
#include <mtxattr.h>
yangyah 2003-04-14
  • 打赏
  • 举报
回复
有两种方法:
(1)编程实现:在你的.idl文件里加上需要事务宏
library MATERIALLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");

importlib("C:\program files\common files\system\ado\msado15.dll");

[
object,
uuid(6E7E0DCB-7125-4940-9B7A-2FB0F4612922),
dual,
helpstring("ISortFetcher Interface"),
TRANSACTION_REQUIRED,//需要事务
pointer_default(unique)
]

(2)在控制面版-〉计算机管理-〉组件服务里-〉Com+应用程序里安装你的组件,安装完后,右键点击你需要设置事务的组件,有五种事务属性,选择“需要事务”就可以了。
xufeiyunwindows 2003-04-10
  • 打赏
  • 举报
回复
怎么设置组件服务里的事务属性
yangyah 2003-04-10
  • 打赏
  • 举报
回复
你是否在组件服务里设置该组件的事务属性了?把你的代码粘出来看看再说。
最近在学习数据编程,这本书相当不错,共享一下,有需要的朋友就下载吧~第1章 ADO/MTS/COM十和分布式多层架构 1-1 认识ADO 1-2 使用原生ADO对象 1-3 ADO和分布式多层架构 1-4 Delphi的数据存取技术 1-5 原生ADO对象和ADOExpress组件 1-6 结论第2章 撰写使用ADO技术的应用系统(一) 2-1 ADOExpress组件 2-2 数据库应用程序 2-3 Master/Detall应用程序 2-4 事务管理 2-5 BatchUpdate模式 2-6 搜寻数据 2-7 过滤数据 2-8 排序数据 2-9 结论第3章 撰写使用ADO技术的应用系统(二) 3-l 处理多个数据表Join的数据 3-2 使用ADO处理BLOB信息 3-3 调用存储过程 3-4 使用ADO的异步执行能力 3-5 处理错误 3-6 使用ADO存取Excel 3-7 使用ADOx 3-8 RDS 3-9 使用ADO开发分布式多层应用系统 3-10 ADO和WebBroker应用程序 3-11 结论 第4章 深入了解ADO 4-l AD0的Cursor Engine 4-2 ADO修改数据的流程 4-3 ADOExpress和AD0 4-4 ADO和BDE/IDA贝 4-5 ADO的执行效率 4-6 优化ADO的执行效率 4-7 结论 第5章 MTSCOM+和分布式多层应用系统 5-1 什么是MTS 5-2 COM+COM的基本概念 5-3 MTS的系统架构 5-4 COM+的系统架构 5-5 状态对象和无状态对象 5-6 结论 第6章 MTSCOM+的核心技术事务管理 6-1 数据库事务管理 6-2 MTSCOM+事务对象 6-3 资源管理 6-4 MTSCOM+的事务生命周期 6-5 以程序代码自行控制事务管理 6-6 结论 第7章 MTSCOM+的安全机制 7-1 安全机制 7-2 MTSCOM+的角色 7-3 实现宣告式安全机制 7-4 资源鉴定控制 7-5 安全机制检查的时机 7-6 实际的范例 7-7 结论 第8章 设计MTSCOM+对象MTSCOM+应用系统 8-1 开发MTSCOM+组件 8-2 开发存取数据的MTSCoM+组件 8-3 较为复杂和实际的MTSCOM+应用系统 8-4 MT3/COM+的共享信息机制 8-5 管理和分发MTSCOM+应用系统 8-6 如何调试MTSCOM+应用系统 8-7 结论第9章 以DeIphi技术开发MTS/COM+应用系统 9-l 一个典型的场景 9-2 使用TDCoMConnection建立MTS/COM+对象 9-3 维护事务管理的正确性 9-4 MTS/COM+应用系统架构的实现 9-5 第二种思考方式 9-6 结论第10章 撰写高效率的MTS/COM+组件和MTS/COM+应用系统 10-1 你应该牢记的事情 10-2 快速建立和调用远程MTS/COM+对象 10-3 MTS/COM+对象和数据的传送 10-4 状态信息 10-5 结论
第1章 ADO/MTS/COM十和分布式多层架构 1-1 认识ADO 1-2 使用原生ADO对象 1-3 ADO和分布式多层架构 1-4 Delphi的数据存取技术 1-5 原生ADO对象和ADOExpress组件 1-6 结论 第2章 撰写使用ADO技术的应用系统(一) 2-1 ADOExpress组件 2-2 数据库应用程序 2-3 Master/Detall应用程序 2-4 事务管理 2-5 BatchUpdate模式 2-6 搜寻数据 2-7 过滤数据 2-8 排序数据 2-9 结论 第3章 撰写使用ADO技术的应用系统(二) 3-l 处理多个数据表Join的数据 3-2 使用ADO处理BLOB信息 3-3 调用存储过程 3-4 使用ADO的异步执行能力 3-5 处理错误 3-6 使用ADO存取Excel 3-7 使用ADOx 3-8 RDS 3-9 使用ADO开发分布式多层应用系统 3-10 ADO和WebBroker应用程序 3-11 结论 第4章 深入了解ADO 4-l AD0的Cursor Engine 4-2 ADO修改数据的流程 4-3 ADOExpress和AD0 4-4 ADO和BDE/IDA贝 4-5 ADO的执行效率 4-6 优化ADO的执行效率 4-7 结论 第5章 MTSCOM+和分布式多层应用系统 5-1 什么是MTS 5-2 COM+COM的基本概念 5-3 MTS的系统架构 5-4 COM+的系统架构 5-5 状态对象和无状态对象 5-6 结论 第6章 MTSCOM+的核心技术事务管理 6-1 数据库事务管理 6-2 MTSCOM+事务对象 6-3 资源管理 6-4 MTSCOM+的事务生命周期 6-5 以程序代码自行控制事务管理 6-6 结论 第7章 MTSCOM+的安全机制 7-1 安全机制 7-2 MTSCOM+的角色 7-3 实现宣告式安全机制 7-4 资源鉴定控制 7-5 安全机制检查的时机 7-6 实际的范例 7-7 结论 第8章 设计MTSCOM+对象MTSCOM+应用系统 8-1 开发MTSCOM+组件 8-2 开发存取数据的MTSCoM+组件 8-3 较为复杂和实际的MTSCOM+应用系统 8-4 MT3/COM+的共享信息机制 8-5 管理和分发MTSCOM+应用系统 8-6 如何调试MTSCOM+应用系统 8-7 结论 第9章 以DeIphi技术开发MTS/COM+应用系统 9-l 一个典型的场景 9-2 使用TDCoMConnection建立MTS/COM+对象 9-3 维护事务管理的正确性 9-4 MTS/COM+应用系统架构的实现 9-5 第二种思考方式 9-6 结论 第10章 撰写高效率的MTS/COM+组件和MTS/COM+应用系统 10-1 你应该牢记的事情 10-2 快速建立和调用远程MTS/COM+对象 10-3 MTS/COM+对象和数据的传送 10-4 状态信息 10-5 结论

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧