CSpreadSheet构造函数里有这么一段:
if (!Commit())
{
   m_bBackup = false;
}在读30000个数据的时候程序就卡死在这里,我把它注释起来读数据就没问题了,蛮快的,14秒,但是注释起来会有其他什么影响吗

解决方案 »

  1.   

    CSpreadSheet 类 我这没有,没法帮你看。。
      

  2.   

    COMMIT 提交当前事务.所有事务的更改都将为其他事务可见,而且保证当崩溃发生时的可持续性
      

  3.   

    '事务'是这样一种工作,即要么成功,要么不成功。没有半成功状态。
    所谓崩溃就是一切使当前工作不能继续的事情,如停电。这时工作做了一半。按'事务'要求为不成功,必须恢复以前的状态·如果你注释掉。 m_bBackup = ???
      

  4.   

    假设我现在已经注释掉了,然后在读数据读到一半的时候停电了,那个被读的excel会发生什么事情?重新打开电脑后,excel是被读前的正确状态还是数据少了一半?
    要是在写入excel的时候,写了一半停电了,那个ecel会发生什么事情?是已经创建成功了并且写了一半还是excel根本还没有创建成功?
      

  5.   

    不是卡死也不是崩溃,commit函数每插入一行就把旧表删掉,重新再插入一遍。小数据量没问题,超过500就会很慢。两种解决办法:1优化commit函数2单独开个线程,不影响程序工作。