DLL中的数据库连接,大家一般采取什么方法?讨论一下,什么方式最好?还有是将ADO数据库连接写在应用主程序的dmu当中,还是放在一个DLL中,如果放在DLL当中,主程序如何调用,其它DLL如何调用?

解决方案 »

  1.   

    ADO是不行的,BDE是可以的如果硬要做,那就通过TADOQuery间接传递,否则难。还是无法解决重复打开数据库链接的问题
      

  2.   

    做数据库开发,目前流行的是采用三层架构。
    客户端--中间层---数据库
    客户端只要少许的函数库文件或bpl包就可以了,看你的程序设计情况中间层需要相应的驱动文件,如果访问的是oracle,那你就得安装orecle客户端驱动。
    中间层采用连接池方式。当客户端取数据的时候,中间层一个连接池占用状态,取完后释放连接池(当然不是释放中间层与数据库的连接,是长时间保持连接)是释放客户端与中间层的连接。客户端与中间层的连接方式可采用 tcp/ip协议即socket方式,客户端与中间层的方式是 发出连接请求-〉发送sql语句-〉等待返回数据-〉返回结果-〉断开连接
    在“等待返回数据”与两层结构是一样的,相当于程序直接发sql语句给数据库,返回结果,后向结果发给客户端。
      

  3.   

    目前的水平还达不到做三层,而且业务数据不是很频繁,一天的总数据条件增长不会超过500条。用两层处理简单。现在就是为了升级以及模块化开发,想做成DLl的方式,可不知数据库连接什么方式比较好。也考虑做一个主界面,里面放一个dmu,进行数据库的长连接,可是如何将这个连接传入dll?
    而不用每个dll再进行一次数据库连接!