DELPHI,com 问题!!!!!!!!!1(200分)

  • 主题发起人 主题发起人 一剑封喉
  • 开始时间 开始时间

一剑封喉

Unregistered / Unconfirmed
GUEST, unregistred user!
现在DELPHI做一个COM,用来连接数据库进行查询然后返回在前台ASP上的数据,
在单机上使用没有问题,可是拿到服务器上进行多人连接使用后,刚开始连接该COM
使用没有问题,大约20分钟左右,就会在前台ASP上有时候报错“灾难性故障!”,
到30分钟后全部提示“灾难性故障!”,系统瘫痪。不知道有哪位高手遇到
过这样的问题,请明告之,不甚感谢!
 
各个访问进程释放了吗
 
没有,你这么厉害,教教我好吗?
 
没有什么进程,在COM中就是写了一些SQL语句,然后执行,就这些,最后在DESTROY中全部释放
,还有我不太明白,COM是怎么样释放的,我发现,每一个用户访问COM创建一个进程,
可是发现COM没有在用户使用完一次后立即释放,所以不知道该怎么办,请高手指招!!
 
你是用DELPHI 7吧,灾难性故障,我也经常出现,
实话实说,我觉得可能是DELPHI 7本身的问题,
它自己也没有预料。所以才会报这样的错,
不过后来我对代码进行了精简,结果又没有出
现这个问题,你看看你的代码是否能精简一下
 
没有,我用是D6,而且我的COM很简单,就有两个函数,在里面执行了一些SQL而已

:liujunzhang兄,你的代码是否可以让小弟拜读拜读呢?多谢!
ld001@fun.21cn.com
 
ado?
bde?
dbExpress?
 
我觉得是COM中线程模型的问题。
 
ado dbExpree:???数据库连接的开销???
bde:???Session管理???
从现象猜的!??/
 
你可以试一试对接口中定义的属性进行改进,比如如果property:Get或Put,没有用的可以删除
掉,我写的一个com出现和你相同的问题就在于接口中属性的设置上/
 
我用的ADO,有一个datemodule,只有一个ADOConnection,和一个AdoQuery,而且整个COM
根本就没有其他的多余的函数,除了onStartPage和onEndPage和我自己定义的两个
Destroy,Initialize之外就是我的两个函数了,在Initialize,Destroy是用来建立
和FREE数据库连接用的!
:dxd0222兄你说的数据库的开销能不能不能说详细点!
 
不会吧,难道说就没有用DELPHI开发COM进行WEB数据库编程吗?不会是就因为有我的这么毛病
,才没有人用吧!
 
楼上老凶,你是如何注册这个com的
 
regsvr32 路径+XXX.DLL 和这有关系吗?
 
你要onStartPage和onEndPage干什么?

直接用automation object就可以了,Initialize初始化,Destroy释放。
 
:Adnil兄,你说的好象没有道理,onStartPage和onEndPage 是创建COM就自带的函数
,要不要有什么关系!
 
到底有没有人知道,我都快疯了,DELPHI的大富翁就这个水平吗?
 
你把代码贴出来吧,肯定可以帮你搞定的。

另外有两个建议
1.如果你的com对象不进行asp的对象操作,就没有必要用active server object,automation
object就能满足要求。
2.com对象中使用datamodule不一定理想,我都是直接用ado的原生对象来操作数据库,这样跟
asp的交互也容易了很多。
 
后退
顶部