在你的那种情况下是没有差别,但在
G_adocon.begintrans
g_adocon.execute strinsert1
g_adocon.execute strinsert2
g_adocon.execute strinsert3
g_adocon.committrans
.begintrans和.committrans可以保证三个语句要么同时成功,要么同时失败,
这样,可以保证数据库的一致性

解决方案 »

  1.   

    penitent说的对。你要弄清楚事务的含义。
      

  2.   

    当你使用了begintrans,中间操作时遇到错误,可以RollbackTrans,这样子就不会使数据混乱,也就是一致性
      

  3.   

    事务可以保证数据的系统完整性。有三种类型:1、显式事务:是手动配置的事务,用于定义事务的开头和结尾。2、隐式事务:系统会在发现某些关键字是自动启动事务,如ALTER TABLE,SELECT,DELETE,REVOKE 等。3、自动提交事务:这种是默认事务模式。每一个批都被分解成更小的语句,使其类似批处理文件。G_adocon.begintrans
    g_adocon.execute strinsert
    g_adocon.committrans
    因为你的事务模型只有一条语句,所以就算你不显示的指定事务的开始和结束,系统默认情况也是将它看成一个事务的,所以只写g_adocon.execute strinsert也可以取得相同的效果。
      

  4.   

    同意樓上的 冰新具我所知, 在以前沒有事務的時候, 每次對數據進行 變動, 都使用紀錄異動表的key值的做法(也就是紀錄修改了哪一條紀錄), 一旦有一句沒有正確執行會對所有紀錄過key值得紀錄進行一次 恢復數據的動作! 當然這只是個大概的方法, 中間還有許多問題要考慮!