在线求助:COM+问题(COM专家救急,能解决则分数不限)

shsunb 2003-07-21 06:49:29
兄弟正在开发COM+,客户端想用dcom连接,再做个DCOM服务器,完成接口转换过程。处理过程如下:
客户端需要知道该DCOM服务器的接口,连接到该服务器后通过该服务器传递Olevariant类型的参数并调用COM+组件(因为我想做出可用其他方式调用的com+组件)来完成事务性操作,当然也需要返回数据。
但小弟不明白DCOM服务器那里应该怎么去写,需要自定义列集实现接口转换?请大虾指点一二,感激不尽…………
...全文
45 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjw1018 2003-08-07
  • 打赏
  • 举报
回复
studying
shsunb 2003-08-07
  • 打赏
  • 举报
回复
还有人帮忙吗……
FrameSniper 2003-07-31
  • 打赏
  • 举报
回复
呵呵,我看我该看看李维的书了...........
charlish 2003-07-30
  • 打赏
  • 举报
回复
如果用DCOM应用来作代理,在5.0版本时有些问题,但在7.0我也不是很清楚啦。你这样的做法是想溶合MIDAS和COM+的优点,但是我觉得这样做会更加复杂。
当然在不同的应用可以使用不同的手法。你这种做法也是正确的。
frogshero 2003-07-30
  • 打赏
  • 举报
回复
好啊﹐俺也想知道 shsunb(我怕来不及)是好人
shsunb 2003-07-30
  • 打赏
  • 举报
回复
其实我们可以把COM+组件看作是标准的封装企业逻辑的中间件,这样就是升级到DOTNET也能平滑的去过渡,并且能用到事务、安全等特性。
至于客户端,我的观点是不一定要特别瘦,太瘦会加重服务器负担。现在硬件发展很快,我将一些显示逻辑分离出来写到客户端。
这样客户端和COM+组件之间的通讯就可以分离出来,不管是用什么方式实现,只是充当“中介”或“代理”的角色。当在因特网上调用,可以使用基于TCP/IP协议的WEBCON,而内部网使用DCOM效率应该比WEBCON要高(我是不喜欢使用SCK),也能提供一定程度的安全性,但缺点是配置较复杂,实施成本较高。
不管怎样,我规划的这种方式理论上应该是可行的,如果我能搞定会把代码贴出来共享,更希望大家多帮忙,谢谢
LazyMan 2003-07-29
  • 打赏
  • 举报
回复
如果不知道dcom怎么写可以用向导
file->new->选择要写的liberary就行了
Good Luck!
shsunb 2003-07-29
  • 打赏
  • 举报
回复
to eastliangliang(青苹果)(有家厨房大掌柜—辞职中) ,charlish(刘金胜)
不使用DCOM如何能跨机器调用com+组件?

我了解的三层结构主要有以下几种(不对地方请指出):
1)客户端直接连接到自己编写的服务器上(一般是dcom),服务器直接连接数据库,但没有享受到事务;
2)客户端通过SCK,WEBCON等根据IP(适合因特网)连接到iis上,再通过httpsvr转连COM+
3)还有就是我这种情况,想利用现有的COM+组件通过dcom连接,可方便应用于内部网

再次感谢 theone_jxm() ,不过我希望要的是不关联任何具体组件信息,只是将请求转发。我希望创建的是线程模型和COM+相同的单一服务器COM组件,通过MARSHALINTERFACE方式调用COM+接口,不知是否需要自定义列集???


还有李维所有的书都有,最经典的两本看了好几遍
猛禽 2003-07-29
  • 打赏
  • 举报
回复
你的要求太特别了,等于是做了一个DCOM应用来作代理,这种应用过于特殊,一般书里是不会说的,而且我想不出有什么情况需要一个这样的东东。
如果你真要做,自已去看scktsrvr的源码,它是用SOCKET来实现你要的功能。
  • 打赏
  • 举报
回复
function TIsapiserver.execSql(STRSQL: string): integer;这个是你的Dcom的服务段函数


function TIsapiserver.execSql(STRSQL: string): integer;
var
obj: variant;
begin
coinitialize(nil);
try
obj := createoleobject('pmts.mtsreport');//你的com+
obj.queryexe(strsql);//你的方法
result := s_ok;
finally
CoUninitialize;
end;
end;
charlish 2003-07-22
  • 打赏
  • 举报
回复
利用COM+库文件进行动态调用,不需要用DCOM控件。
eastliangliang 2003-07-21
  • 打赏
  • 举报
回复
客户端->DCOM->COM+?是这样么?
为什么不直接调用COM+
shsunb 2003-07-21
  • 打赏
  • 举报
回复
如果真的没人帮忙我以后再也不到这个地方来了
我发誓!
shsunb 2003-07-21
  • 打赏
  • 举报
回复
再等5分钟,好饿…………

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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