DLL或BPL中如何做到数据连接共享?(50分)

  • 主题发起人 主题发起人 xianghb
  • 开始时间 开始时间
X

xianghb

Unregistered / Unconfirmed
GUEST, unregistred user!
我们都明白在系统可将各模块分成
DLL或BPL以实现团队开发,但在
Mis中如何能共享数据库的连接呢?
总不能每个DLL或BPL都去连数据库吧,
如此以来,效率便不可想像了
 
可以,但是你必须将TDATABASE和你所用到的TQUERY或TTABLE也必须放在DLL或BPL中,
并在函数中作为参数。
 
MTS has resource pooling, try to use it.
 
看过一些资料后,
BPL现在已经能做到
连接共享了,但DLL呢?
请继续!
 
DLL不能够做到直接共享数据连接,但是有一个间接的实现方法:
例如:
在你的DLL定义一个实现打开某个Table的函数,定义如下:
function MyOpen(var Database :Tdatabase);expert;
......
function MyOpen(var Database:Tdatabase);
var
MyTabel;TTable;
begin
MyTable:=Ttable.create(nil);
Try
MyTable.Database := Database;
MyTable.TableName := 'table1';
MyTable.Open;
finally
MyTable.Free;
end;
end;

调用时把你在DATAMODULE用的Database做为变量传过来.
 
to xianghb
能不能将BPL连接的方法介绍一下,我可以给你加分。
 
to_Jhdandcl
代码你测试过吗?怕是想当然吧,

btw:
今天看了Code6421的文章《InterFace篇》;
可以用InterFace的方法在DLL间传递Delphi 的VCl
类,测试成功后,就贴代码出来;
大家有好的方法,请继续
borland@163.com
 
其实BPL和DLL
都一样,只要EXE 和DLL都是带包编译(VAL50.bpl)
就可以传递VCL类(当然也可以共享数据连接)
BPL更简单,只要都Use DMunt就可以做到连接共享
。。。。。。。。。。
就这样了,End
 
后退
顶部