我用一个adoQuery,Datasource,DBGride做数据库的连接,用adoQuery查询到多个表的
数据,然后我想实现两个功能
1.按浏览按钮以后只能浏览数据,不能对DBGride做编辑;
2.按修改按钮后就可以修改数据,包括对多个数据行的修改,然后按提交按钮后一起提交修改的数据。

解决方案 »

  1.   

    1.按浏览按钮以后只能浏览数据,不能对DBGride做编辑;
    答:
    dbgrid.readonly:=true;
    2.按修改按钮后就可以修改数据,包括对多个数据行的修改,然后按提交按钮后一起提交修改的数据。
    答:dbgrid.readonly:=false  ;
        dbgrid.datasource.dataset.edit;
         ......
       dbgrid.datasource.dataset.post;    
      

  2.   

    问题一:
    同上
    问题二:
    同上
    注意的是多个数据行的修改要每一行都edit …… post
      

  3.   

    每一行都edit?不太明白。如果dasource.dataset设置为edit以后不是把所有数据都设置为edit了吗?
      

  4.   

    1.按浏览按钮以后只能浏览数据,不能对DBGride做编辑;dbgrid.readonly:=true;按修改按钮后就可以修改数据,包括对多个数据行的修改,然后按提交按钮后一起提交修改的数据。
    用事务。
    不用事务的话最好分开保存。
      

  5.   

    1.按浏览按钮以后只能浏览数据,不能对DBGride做编辑;
    答:
    dbgrid.readonly:=true;
    2.按修改按钮后就可以修改数据,包括对多个数据行的修改,然后按提交按钮后一起提交修改的数据。
    答:dbgrid.readonly:=false  ;
        dbgrid.datasource.dataset.edit;
         ......
       dbgrid.datasource.dataset.UpdateBatch();
       dbgrid.datasource.dataset.post;
    这样就可以,不用注意多个数据行的修改要每一行都edit …… post
      

  6.   

    1.按浏览按钮以后只能浏览数据,不能对DBGride做编辑;
    答:
    dbgrid.readonly:=true;
    2.按修改按钮后就可以修改数据,包括对多个数据行的修改,然后按提交按钮后一起提交修改的数据。
    答:dbgrid.readonly:=false  ;
        dbgrid.datasource.dataset.edit;
         ......
       dbgrid.datasource.dataset.post;同意