求助高手!ADO如何支持多线程? 我的实现方法是在每个线程中create adoconnection和adoquery这样不会影响主窗口的数据库处理。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你只是要求在比较费时的查询里面能够做到提交到后台处理,其实不必用线程,可以使用ADO的异步处理设定TADODataset的ExecuteOptions = [eoAsyncFetchNonBlocking]。在异步处理中,ADO会以OnFetchProgrss事件来通知应用程序ADO还在处理数据当中,并且以OnFetchComplete事件来通知应用程序ADO已经处理完毕,你可以响应这两个事件来完成异步提交。如果你一定要在多线程里面处理,要注意以下几点:1、每个线程的Create方法里面建立一个连接,而且一定要在Create方法里面做,不能在Execute方法里面做,会蓝屏2、其余的就可以放到Execute里面了,我做过的没问题。3、要注意多线程比较麻烦,而且同步问题要考虑,最好还是按照我开始所说的异步提交比较好一点 另外,使用多线程,最好看看Delphi5开发人员指南,要注意用Synchronize方法来更新主线程,这样主界面才会响应用户输入。BDE有个TSession,但是ADO没有,它使自己在处理Session的。一定要一个线程创建一个TADOConnection,切记,切记。 分用完了,该怎么加呢 求 那个地方有interbase和pardax的ado驱动下载啊? 关于char 和vchar! ADOQuery的过滤事件 如何在FORM中用代码创建一个按钮? 如何把Query,Table,Adoconnection的密码提示去掉 table中,怎么才能在表的最前面添加数据?非要用算法来实现吗?由现成的函数吗? 招聘DELPHI程序员(广州) delphi中如何表达2开12方的计算公式 进程通讯:进程间要传递一个大的数据如一个几K甚至几十K的String或一个对象,用什么方式更好一些? 在那里可以下道ADO控件的补丁!!!
设定TADODataset的ExecuteOptions = [eoAsyncFetchNonBlocking]。
在异步处理中,ADO会以OnFetchProgrss事件来通知应用程序ADO还在处理数据当中,并且以OnFetchComplete事件来通知应用程序ADO已经处理完毕,你可以响应这两个事件来完成异步提交。如果你一定要在多线程里面处理,要注意以下几点:1、每个线程的Create方法里面建立一个连接,而且一定要在Create方法里面做,不能在Execute方法里面做,会蓝屏
2、其余的就可以放到Execute里面了,我做过的没问题。
3、要注意多线程比较麻烦,而且同步问题要考虑,最好还是按照我开始所说的异步提交比较好一点
BDE有个TSession,但是ADO没有,它使自己在处理Session的。一定要一个线程创建一个TADOConnection,切记,切记。