快急死我了,各位请帮帮我! 
ADOQuery,DataSource,DBGrid挂接在一起,其中ADOQuery是多表查询结果。 
我想通过DBGrid控件直接修改某一个表的数据,此行数据是另一个字段根据修改也相应的数据,应该在哪里写代码?怎么取当前行?表中有如下字段:ID     姓名      金额     提成比例    提成金额
1      张三      1000      0.7          700我想在DBGrid中修改提成比例后,提成金额自动计算

解决方案 »

  1.   

    如果是SQLSERVER,可以用触发器!!
      

  2.   

    CREATE TRIGGER [UPDATE_TC]
       ON [dbo].[YourTable]    --  Your Table Name
       AFTER UPDATE
    AS
    BEGIN
    SET NOCOUNT ON; IF UPDATE(金额) OR UPDATE(提成比例) 
    BEGIN
    UPDATE dbo.YourTable SET 提成金额 = 金额 * 提成比例
    END
    END
      

  3.   

    在ADOQuery的OnBeforePost事件中写代码:
    DataSet.FieldByName('提成金额').AsFloat := DataSet.FieldByName('金额').AsFloat * DataSet.FieldByName('提成比例').AsFloat;
      

  4.   

    估计有点麻烦,修改提成比例 可以让 提成金额 但是保存的话 就要另外再写了 。
    dbgrid 的属性设置为 edit 为 true,在keyup 事件里写 关于计算提成金额 的代码
      

  5.   

    ACCESS的数据库也可以如3楼所说的吧:在ADOQuery的OnBeforePost事件中写代码:
    DataSet.FieldByName('提成金额').AsFloat := DataSet.FieldByName('金额').AsFloat * DataSet.FieldByName('提成比例').AsFloat;