您现在的位置: 中国教师站 >> 教师关注 >> 电脑技术 >> 编程技术 >> Delphi >> 正文

Google
Delphi多线程下的ADO编程
作者:Siny 文章来源:中国教师站cn-teacher 点击数: 更新时间:2007-4-22 15:57:22
nbsp;                                            

 

 

 

 

 

 

 

 

 

 

 

 

图三

 

我增加了一个ADOConnection以保证每个线程都有一个自己连接(会话),从而避免出现资源冲突,我的问题是不是解决了呢?是的,这个问题已经解决了,将我的程序与数据库放在同一台机器上运行没有问题,但是当程序与数据库服务器不在同一台机器上运行时会出现一个新的问题。

 

[DBNMPNTW]ConnectionWrite(writeFile())错误

     这个错误不是多线程引起的,而是Micrsoft自己的一个问题,产生该问题的原因可能是因为网络异常而引起的,可以通过SQLServer客户端的默认的网络协议named pipes network propocol 改为 TCP/IP Sockets,具体做法请参考Micrsoft技术支持网站的《Microsoft Knowledge Base Article - Q178040

 

总结

   由于ADO控件的线程不安全性(事实上这种不安全性是来自Micrsoft ADO Library,所以在其它开发工具中也存在同样的问题)因此在使用多线程ADO编程时应该注意一下问题:

 

第一:要保证每个线程都拥有自己的会话。

第二:作为客户端程序应该尽可能的减少与数据库库服务器的连接数。

第三:在退出线程之前确保释放所有的资源。

 

参考文献:

1、李维《Delphi 5.X ADO/MTS/COM+高级程序设计篇》 机械工业出版社 2000。

2、Charlie Calvert《Delphi 4编程技术内幕》潇湘工作室 译 机械工业出版社 1999。

上一页  [1] [2] [3] [4] [5] [6] [7] 

相关专题:
 
 网友评论:(评论内容只代表网友观点,与本站立场无关!)
GOOGLE广告

阅读排行

| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 |
中国教师站

中国教师站 版权所有 Copyright © 2006-2020 All Rights Reserved 站长:Sina & Siny
[备用域名:www.JXZYW.Com] 有事请留言有事请留言
【实力成就精品 诚信呵护品牌】

信息产业部备案
苏ICP备06018635号