如何在Dll中共享数据库连接(150分)

  • 主题发起人 主题发起人 大帅哥
  • 开始时间 开始时间

大帅哥

Unregistered / Unconfirmed
GUEST, unregistred user!
我在主程序中已打开数据库连接,当我调用Dll,Dll要使用数据库时,
Dll要重建连接,请问Dll如何使用已打开的连接?
 
把DataSource作为参数传递给DLL行否?
 
1. 把Session作为参数传过去(如:newSession),
2. 不直接使用Alias,而是定义一个database控件,
把它的Databasename也传过去(如:newDBName),

在DLL中只要:
Session:=newSession;
query1.databasename:=newDBName;

以后query1.open时,query1就是使用了原有的Database连接。

另:如果要使用form,一般要把Application作为参数传给DLL,
替换掉DLL自身的Application。

注意,一般在DLL结束时,最好把Seesion和Application改回来。
因此,一般都在DLL中作一个初始化过程和一个结束过程,专门负责这些工作。
 
看看学习学习:)
 
exe中连接后,将 database.Handle 传给 dll

dll中:
database:=TDAtabase.Create(nil)
database.Handle:=传来的handle
就可以用了,不用再连接
 
EXE与DLL都是BUILD WITH PACKAGE,只要DATABASE命名,数据库就会自动传递.
 
多人接受答案了。
 
后退
顶部