请问大家,用dll封装各功能模块,那访问数据库的数据库模块(DataModule)是各个dll都创建一个好还是把数据模块(DataModule)单独打包成一个dll好啊?请问大家怎样处理的?

解决方案 »

  1.   

    to:那不就要建立好几个adoconnection
      

  2.   

    1.可以把AdoConnection作为dll函数的参数传递进去,所有的dll都使用外面exe的AdoConnection;2.把AdoConnection的ConnectionString以字符串的方式传递给dll的函数,
    每一个dll中自己创建一个TADOconnection,是单独连接数据库function fun_dll(conn:string):integer;
    var
      AdoConn:TADoconnection;begin AdoConn := TAdoConnection.create(nil);
     AdoConn.ConnectionString := conn;//
     AdoConn.LoginPrompt := false;
     AdoConn.connected := true;
     ...
    end;外面的exe成功连接数据库后,把conn.ConnectionString传递进去即可;
    fun_dll(conn.ConnectionString);
    建议采用方法1;
      

  3.   

    参考: DLL的ADODateSet使用主程序内的ADOConnectionhttp://community.csdn.net/Expert/TopicView3.asp?id=5089892
      

  4.   

    同意 do2008(事情做好了,才是事情)!
    但建议使用 第一种方法.第二种方法要建立很多个Connection,不太好!
      

  5.   

    DLL调用的话 你动态去判断该调用哪个DLL就调用哪个