表为什么要用,我只在TQuery中用过

解决方案 »

  1.   

    按照我的理解,UpdateSql只是用在以CacheUpdate模式更新数据中,好像不用显式调用UpdateSql的方法,只要把UpdateSql和query或者table连接,设置好属性就可以了。关于CacheUpdate你可以看一下:
    http://www.csdn.net/expert/topic/116/116688.shtm
      

  2.   

    你操作的是在NTFS文件系统上的文件型数据库吧,设置该文件目录的属性:安全性-权限-everyone 完全控制
      

  3.   

    Table一般不用UpdateSQL,当Query里是从多表中取得数据,或者有 order by语句时要用UpdateSQL。
    在Query的SQL属性里写好语句,联好UpdateSQL,在UpdateSQL属性设置里,从上到下点击左边四个按钮(记不得了),应该OK了吧。
      

  4.   

    而且,有参数时,似乎建议用Apply方法(见Delphi帮助TUpdateSQL.Apply)
      

  5.   

    Query1.cachedupdate:=ture;
    Query1.UpdateObject:=UpdateSQL1;//联好了。
    UpdateSQL中的sql语句也写了。
    我用database1.applyupdate([Query1])时抛出例外,"table is read only"。
    ==========
    我猜database1.applyupdate([Query1])调用UpdateSQL1中的语句,是吧?
    单独用UpdateSQL1.SetParams(ukInsert) ;
     UpdateSQL1.ExecSQL(ukInsert) ;
    就OK.
      

  6.   

    我用的不是NTFS文件系统上的文件型数据库。
      

  7.   

    with Query1 do
        begin
          Database1.StartTransaction;
          try
            ApplyUpdates; {try to write the updates to the database}
            Database1.Commit; {on success, commit the changes}
          except
            Database1.Rollback; {on failure, undo the changes}
            raise; {raise the exception to prevent a call to CommitUpdates!}
          end;
          CommitUpdates; {on success, clear the cache}
        end;
    delphi帮助里的一段,用这段来提交。
      

  8.   

    用Query1的ApplyUpdates;时,
    Query1中写的SQL语句放在那?
    =========
    为什么,帮助中多是关于事务的Apply,Commit等东西,
    那些插入,修改的SQL语句不涉及!?
      

  9.   

    因为当你双击updatasql时,会弹出一窗口,生成代码后直接用insert或edit都可以的。你去看看我的帖子,用updatasql可以查的到的。我那上面的代码是正确的,当时的原因是有字段为空。