我还是建议您用标准SQL语句来完成:)

解决方案 »

  1.   

    dbgrid 控件不好用,建议no
      

  2.   

    是否便于用户操作是看您如何解决这个问题。
    用SQL语句也可以做到很方便的操作
      

  3.   

    我用DBGrid也不行,后来只能换用DataGrid……
      

  4.   

    dbgrid 和 datagrid 都可以,关键是查询必需是可更新的
      

  5.   

    比如:
    select * from tab ...
    select tab1.* from tab1 inner join tab2 on ...
    之类的就是可以更新的
    其他分组或汇总等查询就不能更新
      

  6.   

    首先:我不明白您说的查询结果是什么,一般VB中的查询结果用SNAPSHOT或只读的记录集;另:您可以查询出DYNASET形的查询结果,当然能够读写,但其中不能不函数之类的SQL子句。
    或:用SQL命令、存储过程也可以
      

  7.   

    我这里是多表查询,原来的sql语句是:
    select t_s.id,t_s.name,t_g.english from t_s,t_g where t_s.id=t_g.id and t_g.english<60
    在查询结果中不能更改数据
    from 风,我改为:
    select tab1.* from tab1 inner join tab2 on ...
    就可以更改了。
    谁能解释一下?
    一起给分。
      

  8.   

    当然,多表查询必需是一一对应的关系才能更新,否则数据库怎么知道改的是哪条记录啊
    select t_s.id,t_s.name,t_g.english from t_s,t_g where t_s.id=t_g.id and t_g.english<60
    如果改为:
    select t_s.id,t_s.name,t_g.english from t_s inner join t_g on  t_s.id=t_g.id where t_g.english<60
    应该就可以了
      

  9.   

    多表查询建议不要使用dbgrid进行增删改。
    你会发现很麻烦。
    不妨使一下list,或者其他非数据感应控件。