我的程序有接近20个Form
每个Form大约2-4个报表
现在我使用了一个DataModule
里面只有一个TADO_Connection控键和2个TADOQuery控件和两个DataSource
每次插入数据或查询数据,这几个控件已经够用
但是如果切换Form的话,好像又出现问题不知道,1、每个Form都配有独立的TADOQuery或者TADOTable
或者最好每个报表配一个TADOTable还是2、无论多少个报表,都共享使用若干个ADO控件?
请问怎么才好?怎么控制?

解决方案 »

  1.   

    我推荐这个1、每个Form都配有独立的TADOQuery或者TADOTable
    或者最好每个报表配一个TADOTable你想共享的使用这些东西,可能是想节省资源,其实资源节省不了多少,而且,动态的改变会让你在很多时候遇到问题,比如你上次QUERY用过之后没有关闭,然后这次又用,很多问题。
      

  2.   

    一类操作对应一个QUERY——我是这么做的
    我刚做完一个,也和你的情况差不多,不过我切换Form是没有出现问题呀
    你记得要引用DataModule所在的单元
      

  3.   

    连接DBGrid的AdoQuery和AdoTable最好不要挪作他用,
    其他的就能省则省了,除了嵌套使用的之外
    查询用一个,添加、删除、修改用一个,足矣。
      

  4.   

    除了引用DataModule所在的单元外,你应该多次少量的连接数据库。这样会提高程序的运行效率!!
      

  5.   

    我没有使用TADOTable,也没有用到任何DBxxx控件
    都是在StringGrid里面写完,就用打开Query执行SQL语句写到数据库里面去引用是没有问题的
    但是我在多个form之间切换时,有时候会出现返回记录集错误
    不知道是我控制的不好
    还是这种方法不好呢
      

  6.   

    我认为 楼主的方法比较麻烦,一个不小心就会出错,再说资源方面也节省不了多少,
    我的做法和 heixiu1980(heixiu1980) 类似:
             连接DBGrid的AdoQuery和AdoTable最好不要挪作他用,
            其他的就能省则省了,除了嵌套使用的之外
            查询用一个,添加、删除、修改用一个,足矣。
      

  7.   

    heixiu1980和flp所言甚是
    同一类的Query操作仅需要同一个TQuery控件即可,如果需要同时使用的再增加若干
    一般不赞成常用TTable控件从一而终的连接着数据库,若果数据库太多,会占用不少资源
    特别再用BDE连接的时候,会锁死所用的DB文件,给数据库的扩展使用带来很多麻烦