uses myform1,myform2.., mydm;//数据库模块 function runxx1:Tshowmdaol; begin result:= TmyForm1.create(nil).showmode; end; function initdatabasemd:boolean; begin mydmvar:=Tmydm.create(nil); with mydmvar do begin loaddbparmas('ini文件,或者注册表的建',database1.params); //自己编一个存取数据库登录信息的函数,不限于mssql try database1.connected=true; result:=xxx //麻烦 ... end; end; exports runxx1, runxx2, freedatabasemd; begin initdatabasemd; end;
1、首先,在动态库导出函数不能用控件作变量(其实你不给其它开发工具也可用,这样你的dll就没有好的移植性了)
2、数据库的设定使用时间库控件,还要用到数据库会话(区别于其它模块的数据库连接),数据库控件使用驱动程序连接,不要使用别名连接
3在动态库开始的时候这样
liblriy xxx
uses
myform1,myform2..,
mydm;//数据库模块
function runxx1:Tshowmdaol;
begin
result:= TmyForm1.create(nil).showmode;
end;
function initdatabasemd:boolean;
begin
mydmvar:=Tmydm.create(nil);
with mydmvar do
begin
loaddbparmas('ini文件,或者注册表的建',database1.params);
//自己编一个存取数据库登录信息的函数,不限于mssql
try
database1.connected=true;
result:=xxx
//麻烦 ...
end;
end;
exports
runxx1,
runxx2,
freedatabasemd;
begin
initdatabasemd;
end;