我觉得最好的方法就是能够到达类似操作sqlplus时,
修改后在数据库中会有相应改变,
除非你执行rollback才回退。象以上代码先执行“修改”操作,
再执行“提交”操作,
才能对数据库进行真正修改的过程实在烦琐,
我想不去做“提交”操作,却又不能真正执行修改,
用户肯定也会觉得这样很繁,
最可怕的是如果用户在进行新的修改前不执行“提交”的化,
以前的操作就要遗失,
这简直太恐怖了不是么?能不能就执行一次“修改”操作,
数据就被修改了,
但你想回滚的话,又可以“rollback”,
就与sqlplus中未commit前类似么!
请指教!

解决方案 »

  1.   

    我给你写了一段ADO的例子,就是这么简单.
    with ADOQuery1 do
     begin
      ADOConnection1.BeginTrans;
      close;
      sql.clear;
      sql.add('insert into aa values(10)');
      EXECSQL;
      try
       ADOConnection1.CommitTrans
      except
       ADOConnection1.RollbackTrans
      end;
     end;
      

  2.   

    请问把哪个的autocommit 设置为false啊?
      

  3.   

    我听取了很多人的意见,首先很感谢,其次我想说说:
    数据库的程序设计时,通常用户操作界面对数据库操作分好几步:
    1.操作,比如insert等,按“确定操作”按纽
    2.提交或则回滚。
    如果是提交,此时才是真正写如数据库的过程
    如果是回滚,那么由于没有真正对数据库进行修改,只要把这个修改事件处理掉就可以达到回滚的目的。可是我想这个方法不是太烦琐了么,
    能不能就执行一次“确定操作”按纽,
    就已经提交是了数据到数据库中,这样省掉“提交”按纽,
    而后在执行“回滚”操作,可以至少rollback一次以上的操作!或则能不能实现就是,用户执行很多次不同的insert,update操作后,
    只要按一次“提交”按纽,就能成功对数据库进行所有以前的操作:
    如:命令1.insert 按“确定操作”按纽,
    命令2.update 按“确定操作”按纽,
    用户所有操作完成,此时用户按“提交”按纽,
    成功对数据库进行修改,
    如果用户想回滚,只要按“回滚”就能回到提交前的状态,
    即使你刚才已经执行了“insert,update”两条命令,
    一起忽略,回到这两条命令执行前的状态!请问如何实现?