用open打开记录集,执行的sql语句就是简单的select,表中的数据量比较到大大概200万条记录左右(当然用的索引)。
速度比较快每秒执行100多次吧。但是大概执行个两三个小时左右vc debug 就报错,基本就是invalid handle非常奇怪(而且说一下每次执行完记录集都被close()了)。
不知道大家见过没有,或是有什么方法解决?

解决方案 »

  1.   

    把你的这段主要的代码贴出来吧。这么想很难看出问题在哪[align=center]==== 让你望见影子的墙 ====
    [/align]
      

  2.   

    用SQL事件探測器觀察下看看~~
      

  3.   

    很有可能是经常打开记录集和关闭导致的问题[align=center]==== 让你望见影子的墙 ====
    [/align]
      

  4.   

    CString strSQL;
    strSQL.Format("select top 1 * from smuser);CRecordset recSM(&db2);
    try 

    if(recSM.Open(CRecordset::forwardOnly, strSQL))
    {
    recSM.Close();
    }
    }
    catch(CDBException *e)
    {
    .......
    }代码去掉了不少 仍然有问题,这整个在一个函数里面 函数里面就这些了,一般出现问题都到不了catch 直接就弹出个对话框什么invalid handle
      

  5.   

    recSM.Close(); 不能这样直接关闭

    recSM.Disconnected();
    resSM.Dispose();
      

  6.   

    还有CRecordset recSM(&db2); 这句跟踪一下是否引用有错》?