知识大全 在Delphi中如何维护COM+的状态信息[2]
Posted 状态
篇首语:世事洞明皆学问,人情练达即文章。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在Delphi中如何维护COM+的状态信息[2]相关的知识,希望对你有一定的参考价值。
在Delphi中如何维护COM+的状态信息[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
回到+的工程 调试它 在ConnectTo和adocBeforeConnect中设置断点 发现程序执行到
DBName:=sDBName;
时 确实已经把DBName的值设为 DB 了 但是在执行
adoc ConnectionString:=ConnectStringA+´Initial Catalog=´+DBName+´;´+ConnectStringC;
时 DBName又成了空字符串 所以出错了
为什么DBName的值会丢掉呢?原来在是因为在ConnectTo中 调用了SetComplete方法 SetComplete方法认为这个+已经完成了任务 会释放这个+对象 所以连接数据库时 又创建了一个新的+ 它的DBName当然是空值了
找到了原因 把SetComplete改成EnableCommit; 编译 再运行客户端 终于运行成功 取回了DB 数据库中的数据
可是在客户端程序中 放入另一个ClientDataSet 在打开ClientDataSet 之后 打开ClientDataSet 想继续访问DB 中的数据 又报错了 把程序改成
Dconnection AppServer connect(´DB ´);
ClientDataset Active:=true;
ClientDataset Active:=false;
ClientDataset Active:=true;
即使只使用一个ClientDataSet 在它关闭之后 再打开时 依然会出错
但如果客户端写成
Dconnection AppServer connect(´DB ´);
ClientDataset Active:=true;
Dconnection AppServer connect(´DB ´);
ClientDataset Active:=true;
可以执行成功 但这样似乎很不好看 +为什么会在连接完数据库后又把自己释放呢?
原来 TmtsDataModule有一个AutoComplete属性 默认值是true 所以在连接完数据库之后 它还是会把自己释放
把AutoComlete设成false后 还是出错 在+的OnActivate事件中跟踪发现 当它被激活时 AutoComplete属性被自动设为ture了 所以在它第一次连接数据库后 依然会把自己释放
在+的OnOnActivate事件中 写上
AutoComplete:=false;
客户端一次连接 多次访问数据库也没有问题了
但这样一来 +就不会自动释放了 需要在+中增加一个方法 在这个方法中SetComplete 然后在客户端用完+后 调用这个方法来释放+
经过以上的摸索 得出以下的结论 在+中 如果要保持状态信息 需要做一些工作 因为+默认是无状态的 它每次被客户端调用后 都会判断是不是应该释放自己 如果我们不想它释放 就要人工加以干预 最后我们还要人工去释放它
cha138/Article/program/Delphi/201311/24838相关参考
用DELPHI在状态栏中显示进程条[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 上面的步
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>//tracklinktechcn/?m_id=dangdang
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>//tracklinktechcn/?m_id=dangdang
用DELPHI在状态栏中显示进程条[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!经常上网的朋
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>//tracklinktechcn/?m_id=dangdang
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>//tracklinktechcn/?m_id=dangdang
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>//tracklinktechcn/?m_id=dangdang
Delphi中用API实现在MSN的信息提示 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我是
使用Delphi获取系列信息 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Delphi以其优良的可
在Delphi中建立和使用别名[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 建立使用IN