m_Database.BeginTrans();
m_Database.ExecuteSQL(LPCTSTR(strSql));
m_Database.CommitTrans();这两函数(BeginTrans,CommitTrans)到底是个啥意思我直接ExecuteSQL不行吗??

解决方案 »

  1.   

    m_Database什么类型。看看msdn一切都清楚
      

  2.   

    知道事务吗??BeginTrans是开启一个事务,CommitTrans是提交一个事务。 还有RollbackTrans。 执行CommitTrans确认事务中的SQL操作。执行RollbackTrans回滚事务中的SQL操作(数据的修改无效)
      

  3.   

    刚看了事务这相关定义这样写代码行不行:for(.....)
    {
          m_Database.BeginTrans();
         m_Database.ExecuteSQL(LPCTSTR(strSql)); 
         m_Database.CommitTrans();     //对strSql重新赋值      m_Database.BeginTrans();
         m_Database.ExecuteSQL(LPCTSTR(strSql)); 
         m_Database.CommitTrans();
    }这样会不会有问题???
      

  4.   

    可以啊,不过最好加入异常处理:
    for(.....) 

        try
        {
            m_Database.BeginTrans(); 
            m_Database.ExecuteSQL(LPCTSTR(strSql)); 
            m_Database.CommitTrans();
        }
        catch(...)
        {
            m_Database.RollbackTrans();
            记录异常
        }    //对strSql重新赋值     try
        {
            m_Database.BeginTrans(); 
           m_Database.ExecuteSQL(LPCTSTR(strSql)); 
           m_Database.CommitTrans();
        }
        catch(...)
        {
            m_Database.RollbackTrans();
            记录异常
        } 

      

  5.   

    问下那用这两个函数一般会出现什么样的问题
    /////////////因为,我现在的程序里就有这两个函数而且是某一个功能上,一执行这个功能,就有可能弹出错误,DEBUG提示框,但由于这个是偶然的,随机的,你根本无法知道什么时候弹出一错误提示框,然后只有关闭程序,重新打开程序是的,这两个函数一般需要在什么时候使用?不用行不行?还有一点:如果在执行这一功能的同时,已经有另外一个操作在影响着这个功能,会不会弹出错误来