1、我想用dll封装一些窗体,问题是这些窗体的数据源不能了。怎么办?
2、本来想把数据源封装dll中调用,可是不知道怎么调用数据源封装后dll。
请各位多多指点。小弟感激不尽。

解决方案 »

  1.   

    我把ADOConnection连接封装在dll,那我如何调用这个dll,要其他的窗体能使用ADOConnection。则不需要在新建ADOConnection连接。怎么做?
      

  2.   

    建一个data module,在里面放一个adoconnection不就行了?
      

  3.   

    你想要的是这个吧 
    http://www.cnblogs.com/dksoft/articles/109862.html
    上面有源码,自己看看
      

  4.   

    最好在你的DLL里写一个外部调用的函数,能够返回数据源连接的。那么其他窗口中的数据库访问控件可以通过这个函数得到数据源连接。
      

  5.   

    csps001(csps001):
       那个函数怎么写。给点代码否?
      

  6.   

    数据源最主要的是连接串吧,做个DLL函数返回这个字符串..
      

  7.   

    ---------dll-------------
    library MyDll;
    uses
      SysUtils,
      Classes,
      Forms,
      Dialogs, DB, ADODB,
      LinkBank in 'LinkBank.pas' {DataForm: TDataModule};{$R *.res}
    Function DoTest(H: THandle):TADOConnection;cdecl;
    begin
      Application.Handle :=H;
      with TDataForm.Create(Application) do
      begin
        Conn.Connected:=true;
        DoTest:=Conn.Create(Application);
      end;
    end;
    exports
      DoTest;
    begin
    end.
    -----------Form调用DLL--------------
    var
      MainForm: TMainForm;implementation
    {$R *.dfm}
    Function DoTest(H: THandle):TADOConnection cdecl; external 'MyDll.dll';
    procedure TMainForm.Button1Click(Sender: TObject);
    begin
    adoquery1.Connection:=DoTest(Application.Handle);
    adoquery1.close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('select * from goods');
    adoquery1.Open;
    end;
    -------------------------
    单击Button1时出现
    [Microsoft][ODBC 驱动程序管理器]未发现数据源名称并且未指定默认驱动程序。
    各位帮帮忙解决啊。