用Post好, 最好再 CacheUpdates 为true, Post时没有写入数据库,最后可以 ApplyUpdates到服务器,只有这样才能有好的 Transaction 支持,用SQL更新那可就是条单行道了哦

解决方案 »

  1.   

    我没用过cacheupdates和applyupdates,如果方便的话,请给我写段例子程序。多谢!!!
      

  2.   

    我不同意comanche的说法,原因如下:
    1。如果在ApplyUpdates前系统罢工,那你不就白干了
    2。DBMS支持事务
    3。用Sql语句还比Post快(跳过数据库引擎产生Sql语句的过程)
    4。使用CachUpdate还占用内存
      

  3.   

    设置table 或query的cacheupdates为true;
    在做完修改后
            Try
                DataBase.StartTransaction;
                datebase.applyupdates[table1];
                DataBase.Commit;
            Except
                On Exception do
                begin
                    database.rollback;
                    table1.cancel;
                end;
            end;
      

  4.   

    请comanche细心点,不要同样问题贴两次,浪费我们宝贵的时间
      

  5.   

    用SQL语句速度快,这就是差别!
      

  6.   

    因为我目前没用Delphi有半年多了,语法上有点忘记,所以 largewang,sorry了
    zheng的语法很正确,不过最后一句 table1(或query) 可以不要 cancel掉,而可以弹出一句话提示服务器 error, 你排除错误后再一个
    Database->Close( )
    Database->Open( )
    最可以再次更新
    .用SQL语句可就真是条单行道了,错了就没这样做的可能了
    .用SQL语句将会绕过数据连接控件的一此支持, 比方说 ReadCommited, Update's WhereAll, WhereKeyOnly, 这样在三层下由为明显,这样写的程序在转成三层几乎就不可能了
    .还有一个就是用SQL语句跟 Query + UpdateSQL没什么不同嘛
      

  7.   

    除非用 StoredProc, 那不是麻烦死了!一个表就要三个 insert, delete, modify, 做起来不是 face!!