不会吧,你的Query的属性设置为可编辑了吗?另外检查Dbgrid的属性是否允许编辑!

解决方案 »

  1.   

      dataunit.DataModule1.query1.close;
      dataunit.DataModule1.query1.sql.clear;
      dataunit.DataModule1.query1.RequestLive := true;  //添加该句
      dataunit.DataModule1.query1.SQL.Add('select *  from 职务性质信息表');
      dataunit.DataModule1.query1.open;
      

  2.   

    将query1的RequestLive设为true即可。
      

  3.   

    这个属性我知道,我是这样设想的,当我改动数据时,DBGRID只起STRINGGRID的作用,只有按下一个按钮时,数据才用SQL语句提交。我知道有UPDATESQL控件和QUERY的CACHED UPDATED的属性可以完成这些功能,但不是很清楚用法,请指教。
      

  4.   

    是不是忘了将query的request属性设为true
      

  5.   

    在C/S模式下编程时是应该用CachedUpdate ,就是像你说的“只在按按钮才提交”,这样做的好处有很多。
    UpdateSql的使用非常简单,放一个Query控件,设置CachedUpdate为真,RequestLive为False
    然后再放一个UpdateSql控件,设置Query控件的UpdateObject为这个UpdateSql,然后在Query中输入你的正常Sql ,如"'select *  from 职务性质信息表" ,(但是如果数据表中有1万条数据你全取回来有什么用呢?加个"Where 1=2" 如何?),然后对UpdateSql点右键,选UpdateSql Edit,设置关键字或要修改的字段后选Gen Sql 就可以了。累死我了,打字真烦.
      

  6.   

    还有你那个按钮中要写Query1.ApplyUpdats才算提交.