有 谁试过 在动态链接库里面访问数据库?如果可以的话 能不能给一个例子看看在线等

解决方案 »

  1.   

    DLL负责连接数据库?还是Dll中有对数据库的操作?
      

  2.   

    放一个DATAMODULE在里面就好了啊,
    有什么区别吗,我最近也是在做,感觉不到什么区别啊,你遇到的是什么问题呢,
    说明一下,别动不动就要代码
      

  3.   

    我加载了数据模板后 总是 出错 "尚未调用CoInitialize" 这是为什么啊!
    如果我把数据模板去掉拉额 就好了!但是我要用数据库的啊!procedure ShowDLLForm(aHandle: THandle); stdcall; //非模式显示窗口implementationuses Unit3;{$R *.DFM}//非模式显示窗口
    procedure ShowDLLForm(aHandle: THandle);
    begin
      Application.Handle := aHandle; //传递应用程序句柄  Application.CreateForm(TCustomerData1, CustomerData1);  with TForm1.Create(application) do //创建窗体
        Show; //非模式显示窗体
    end;/////////
    library MyDLL;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit3 in 'Unit3.pas' {CustomerData1: TDataModule};{$R *.RES}exports
      ShowDLLForm;
    begin
      end.
      

  4.   

    以前做过,你用"尚未调用CoInitialize"到网上找,肯定很多
      

  5.   

    怎么 还不行啊我在 DataModal 单元中 已经加入了
    Initialization
        CoInitialize(nil);
    Finalization
        CustomerData1.ADOConnection1.Connected:=FALSE;
        CoUninitialize;
    end.我是 静态加载的动态链接库  
    为什么 在退出整个程序是 老报错 
    内存 不能为只读!什么的 !
      

  6.   

    Initialization
        CoInitialize(nil);
    end.
    就行了,因为Finalization语句是最后执行的,这时CustomerData1已经被释放掉,再访问当然要报错了.
      

  7.   

    Initialization
        CoInitialize(nil);
    Finalization
        //CustomerData1.ADOConnection1.Connected:=FALSE;
        CoUninitialize;
    end.
      

  8.   

    楼上说的不错,在DLL里调用ADO,如果不加CoInitialize(nil);,会报错,我记得我是在form的CREATE做的
      

  9.   

    谢谢大家的帮助!呵呵!
    angle097113(深思不解) 太感谢你了!~^~