我有两个FORM需要访问同一张表!A FORM是需要直接操作表的,B FORM有个LISTBOX需要访问表,我在B FORM的FormShow事件中
访问了表,程序如下:
    dm.qry.SQL.Clear;
    dm.qry.Close;
    dm.qry.SQL.Add('select *** ');
    dm.qry.Active:=True;现在出现的问题是,当我先打开了B FORM,在不关闭B FORM的情况下,再打开A FORM时出问问题,A FORM中的DBGRID控件中有两个字段显示不出来!提示有的字段未发现!可是在不打开 B FORM的情况下直接打开 A FORM一切正常!我想可能是我在访问表以后没有释放关闭!可是当我在上面的程序最后加上了 dm.qry.Active:=false;后,再打开A FORM时,DBGRID不工作了!请高手指教我该怎样安全访问同一张表!谢谢!

解决方案 »

  1.   

            
            dm.qry.Close; 
            dm.qry.SQL.Clear; 
            dm.qry.SQL.Add('select   ***   '); 
            dm.qry.open;
            //测试一下有数据没        按这个顺序试一下  应该没有问题的   再不行 每次打开的时候 给他动态指定DBGRID  
      

  2.   

    我知道是什么问题了,是两个FORM用了同一个QUERY,我在最后加上dm.qry.Active:=False;就可以了,不过新的问题来了,就是在另一个FORM中添加的数据,如果不重开这个FORM就不会更新出来!:(难道还要加个刷新键?
    动态指定DBGRID?在FORM.show中吗?请问具体什么语句?
      

  3.   

    每一次FORM.show都要重新QUERY一次就行了!