query的RequestLive和CacheUpdate都设为True,然后调用如下代码:
Database1.ApplyUpdates([query1])

解决方案 »

  1.   

    我也试过,还要设置DATABASE的TRANSACTION为ISDIRTYREAD,对巴?
    可结果还是一样
      

  2.   

    不用,缺省的ReadCommit就可以了。
    如果在出问题,那么就是你设的三个SQL有问题。
    确认WHERE语句中是否只按照主键进行比较?
      

  3.   

    我就按了下set primary key然后generate
    对吗?
    主建是什么用的?
      

  4.   

    主键是用来唯一确认一条记录的,好像有两个List框,一个选主键,一个选字段,别弄错了。
      

  5.   

    我用DBDEMOS下的Employee.db生成了一个,你看看是否能生成这样:
      object UpdateSQL1: TUpdateSQL
        ModifySQL.Strings = (
          'update "employee.db"'
          'set'
          '  EmpNo = :EmpNo,'
          '  LastName = :LastName,'
          '  FirstName = :FirstName,'
          '  PhoneExt = :PhoneExt,'
          '  HireDate = :HireDate,'
          '  Salary = :Salary'
          'where'
          '  EmpNo = :OLD_EmpNo')
        InsertSQL.Strings = (
          'insert into "employee.db"'
          '  (EmpNo, LastName, FirstName, PhoneExt, HireDate, Salary)'
          'values'
          '  (:EmpNo, :LastName, :FirstName, :PhoneExt, :HireDate, :Salary)')
        DeleteSQL.Strings = (
          'delete from "employee.db"'
          'where'
          '  EmpNo = :OLD_EmpNo')
        Left = 220
        Top = 100
      end
      

  6.   

    好像行得通,但为什么一条记录修改2次的话,还会出现UPDATE FAILED?