Delphi COM[2] 创建、安装、调用
1、Com+的创建
- 1、File---->New---->Other....---->ActiveX Library 标签下的 Transactional Object
- 2、然后填写: CoClss Name :类的名字,比如:ComTest Threading Modal :线程模式:Apartment 选项: Supports transactions3、然后在View--->Library的对话框中增加方法 注意:如果参数为输出的话,则类型要是指针型,比如:Long * ,然后修改后面的参数in :out,ret4、保存属性方法
- 当建立COM+ 时选择的事务模式为Requires a Transaction, COM+会根据客户的的请求建立相应的事务,不仅仅是数据库,还会有系统资源等事务.成功SetComplete.回滚SetAbort. 选择Requires a Transaction表示当用户调用这个COM+组件时,COM+环境会为这个组件建立一个新的事务上下文,这和数据库的事务不是一回事。当你的COM+组件提交数据时如果出错,应该告诉事务上下文,只要调用COM+组件的SetAbort方法就可以。这样一来,处于同一个事务上下文的所有COM+组件都会Rollback。如果数据提交成功,应该调用SetComplete,不调用这个方法也可以,因为在默认情况下,COM+组件的事务状态设置为EnableCommite。当处于同一事务上下文的所有COM+组件对象都调用了SetComplete时,该事务上下文才会真正的向数据库提交数据。
{Delphi 7 示例图}
2、安装COM+组件
3.1、第一种(推荐):如果是在IDE环境里,点击“Run->Install COM+ Objects”即可把打开的Active Library项目安装到COM+环境中,注意:如果打开的项目是 一个普通的Application项目,是不能被安装到COM+环境中的。 将要安装的com+打上勾,然后在application中有两个选项:install to existing application :表示你的com+安装在com服务器的哪个组件包中, install to New application:表示将当前com+组件安装到一个新的组件包中.
3.2、第二种办法:打开控制面板-> 管理工具->组件服务->计算机->我的电脑->COM+应用程序,在COM+应用程序的树项上点击 鼠标右键,选择“新建->应用程序”->创建一个空的应用程序,并为此应用程序命名,接下来点击“下一步”直到结束即可。建立了空的COM+应用程序后,接下来就是把COM DLL安装 到COM+应用程序中了。在刚建立的空应用程序的树项中新建一个组件,选择“安装新组件”, 在打开文件对话框中选择要安装到COM+环境中的DLL文件,之后跟着向导做都可以了,要把多个COM DLL安装到同一个COM+应用程序包中,只需重复以上步骤即可。
以上方式没有成功,我是直接cmd注册的,例如:Regsvr32 ComTest_events.dll
3、导入COM单元,方便客户端调用:
1、先导入Com+的接口类型. Project --->import Type Library---->选中你编写的Com+的类型,然后选择:Create Unit(创建单元)
创建时间:2020.10.16 更新时间: