使用ADO异步链接数据库 adAsyncConnect,连接成功后并不能触发raw_ConnectComplete,在Close后,raw_ConnectComplete才会被触发~
如果是同步连接数据库,就会触发raw_ConnectComplete异步和事件模型MS都给出了示例,而且我的测试代码就是MS给出的,我很大程度估计这就是MS的BUG~

解决方案 »

  1.   

    疯了疯了~
    ADO的异步 + 事件模型根本不可用~
    RecorsetPtr的Open带adSyncExecute执行后,就一直没有触发raw_ExecuteComplete你们可以从MS的例子试试~PS:我把老外的帖子都翻出来发现他们也是遇到同样的问题
      

  2.   

    目前发现C++使用ADO异步事件模式,事件接受会有很多问题,完全正常不能工作,具体表现如下:1. 一个连接发起一次异步请求正常,后面的任何异步请求都无法正常触发事件。2. 异步事件不对应,发起adAsyncExecute请求后,并不能收到ExecuteComplete事件,发起adAsyncFetch请求后,能收到ExecuteComplete事件,但却不是对应的FetchComplete事件。3. 发起异步连接数据库后,并不能收到连接数据库成功事件。
      

  3.   


    貌似ADO异步是用窗口消息实现的,可能需要消息循环
      

  4.   


    不是,是事件回调,这里有MS给的示例
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms675302(v=vs.85).aspx