H
HuangSkar
Unregistered / Unconfirmed
GUEST, unregistred user!
我需要在dll中使用主程序中的Database组件来连接数据库,
主程序的编译环境为不选中complie with run time package,
我通过传递Sessions的方式来调用dll,第一次调用的时候没有
问题,但是第二次调用的时候,程序就会出错,不知是什麽原因
????Dll中不能使用Session吗?该如何使用??
哪位大虾肯指点迷津。
Dll中的调用程序如下:
==========
procedure ShowDataImportForm(AHandle:THandle;Base:TDataBase;UserNameChar;MySessions:TSessionlist);
var
DllSession:TSession;
begin
Try
Application.Handle:=AHandle;
if Sessions<>MySessions then
begin
Sessions:=MySessions;
end;
DllSession:=Sessions.OpenSession('Default');
CustomerData:=TCustomerData.create(Application);
with CustomerData do
begin
Table1.close;
Table1.Sessionname:=DllSession.Sessionname;
Table1.DatabaseName:=base.databasename;
Table1.TableName:=Username;
Table1.Open;
end;
MainForm:=TMainForm.Create(Application);
MainForm.showmodal;
finally
MainForm.free;
CustomerData.table1.close;
CustomerData.Free;
DllSession:=nil;
end;
end;
主程序的编译环境为不选中complie with run time package,
我通过传递Sessions的方式来调用dll,第一次调用的时候没有
问题,但是第二次调用的时候,程序就会出错,不知是什麽原因
????Dll中不能使用Session吗?该如何使用??
哪位大虾肯指点迷津。
Dll中的调用程序如下:
==========
procedure ShowDataImportForm(AHandle:THandle;Base:TDataBase;UserNameChar;MySessions:TSessionlist);
var
DllSession:TSession;
begin
Try
Application.Handle:=AHandle;
if Sessions<>MySessions then
begin
Sessions:=MySessions;
end;
DllSession:=Sessions.OpenSession('Default');
CustomerData:=TCustomerData.create(Application);
with CustomerData do
begin
Table1.close;
Table1.Sessionname:=DllSession.Sessionname;
Table1.DatabaseName:=base.databasename;
Table1.TableName:=Username;
Table1.Open;
end;
MainForm:=TMainForm.Create(Application);
MainForm.showmodal;
finally
MainForm.free;
CustomerData.table1.close;
CustomerData.Free;
DllSession:=nil;
end;
end;