大 大帅哥 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-03 #1 我在主程序中已打开数据库连接,当我调用Dll,Dll要使用数据库时, Dll要重建连接,请问Dll如何使用已打开的连接?
温 温柔一刀 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-03 #4 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中作一个初始化过程和一个结束过程,专门负责这些工作。
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中作一个初始化过程和一个结束过程,专门负责这些工作。
P Pipi. Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-04 #6 exe中连接后,将 database.Handle 传给 dll dll中: database:=TDAtabase.Create(nil) database.Handle:=传来的handle 就可以用了,不用再连接
exe中连接后,将 database.Handle 传给 dll dll中: database:=TDAtabase.Create(nil) database.Handle:=传来的handle 就可以用了,不用再连接
Z zhangdamin Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-04 #7 EXE与DLL都是BUILD WITH PACKAGE,只要DATABASE命名,数据库就会自动传递.