我用的sql语句是
                Qs = "select b.dept_id as 序号,b.dept_name as 部门名称,a.staff_id as 员工编号,a.staff_name as 员工姓名,a.staff_byname as 姓名简码,c.role_name as 角色";
                Qs+=" from l_staff a,l_dept b,l_staff_role c where a.dept_id=b.dept_id and a.role_id=c.role_id where a.state_id<>2";
                DM1->ADOQuery->Close();
                DM1->ADOQuery->SQL->Clear() ;
                DM1->ADOQuery->SQL->Add(Qs);
                DM1->ADOQuery->Open();
                DBGridEh1->DataSource =DM1->DataSource;
现在我在DBGridEh1更改过数据后,该怎样更新呢?直接用post这种方法不行,我查资料好像说
用datasetProvider可以解决.请帮帮忙!!

解决方案 »

  1.   

    直接将你修改的数据,修改对应dbgrideh中单元格,一格一格修改
    ,或将adoquery.close,再adoquery.open
    第二个方法比较烂
      

  2.   

    "员工表格数据修改时候,可以用你现在的查询,但是部门资料不允许修改,
    这样在你现在这样数据修改时候,只需要修改或增加员工资料"
    我现在就是要修改员工的资料啊,员工的部门要修改,例如原来属于信息部,现在属于编辑部,
    我就需要改他的dept_id,可是显示的时候我必须显示他的dept_name啊,也就是说我想通过 
    该他的dept_name从而修改它的dept_id
      

  3.   

    我以前也是这样解决的,我现在想能否就在dbgrideh中来解决它 ,谢谢楼上的朋友
      

  4.   

    如果你要修改,其实不需要用关联,
    你只需建立相应的Look字段即可,
    如:输入部门代码,自动带出部门名称!
    请看一下,ADOQuery中字段的LookupDataSet、LookupKeyFields、LookupResultField等属性!