我在写一个数据库应用程序,由于该数据库路径不确定,因此我用一个数据模块做了个动态的ADO连接(也就是可在程序中设置),我想把几个较大的窗体写进动态链接库中,但这几个窗体也要用到ADO连接。我想请教有没有办法在DLL中调用主程序中的数据模块中的共用ADO连接,或者其它什么办法?

解决方案 »

  1.   

    connstr := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='
        +数据库路径+';Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";'
        +'Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=密码;Jet OLEDB:Engine Type=5;'
        +'Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;'
        +'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'
        +'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;'
        +'Jet OLEDB:Don'+''''+'t Copy Locale on Compact=False;'
        +'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
      with ADOConnection1 do
      begin
        if Connected then Connected := False;
          ConnectionString := connstr;
        try
          Connected := True;
          Result := True;
        except
          Result := False;
        end;
      end;
      

  2.   

    你定义一个数据模块
    DATAMODUAL
    在里面链接数据库
    dll文件留出一个接口
    就可以了
    修改数据库时候改下dll文件就可以了
    还可以把路径保存成ini文件
    读写ini文件也可以