写了一个报表软件,查询数据库以后,将结果显示到一个DBGRID中,点击报表预览就生成报表。
现在客户要求查询以后可以更改DBGRID中的值,我把DBGRID的readonly置为false,但为什么有几个字段更改值以后,只要鼠标点击同一行以外的任何字段,被改值又变回去了,其他字段都可以改。
请高手指点一二!!!谢了!!!

解决方案 »

  1.   

    我要更改DBGRID中的值,但不更改数据库,只是报表显示时是显示更改后的值,并不更改数据库表中的相应值。
      

  2.   

    建临是表
    把DBGRID连临是表,改后改的是临时表而不是数据库中的表
    关闭时删除临时表
      

  3.   

    我是用存储过程得出的数据集,用的是临时表。我现在就是想知道为什么改了DBGRID的某些字段的值后,当输入焦点一变,就变回原来的值了。
      

  4.   

    加个UpdateSQL1,在里面写上你的删除,插入,更改的表的字段,后StoreProc1的UpdateObject选为UpdateSQL1
      

  5.   

    是不是你改过以后,QUERY对象又Refresh了一回啊!?
      

  6.   

    如果不需要修改数据的话,真接把数据读到stringgird就可以了呀,随便怎么改都行,也不会将值更新到数据库的这样不是很好吗。
      

  7.   

    将查询后的值写到AdvStringGrid中
      

  8.   

    还不如把数据放到listview等控件中
      

  9.   

    现在的问题是:比如说我用存储过程得出a1,a2,a3三个字段的值,存在一个临时表中,一个DataSource的Dataset属性设为这个存储过程,作为DBGRID的DataSource,在DBGRID中改a1,a2字段某条记录的值都没问题,改a3后,输入焦点一离开,自动变回原来的值,不知道为什么。