我做了个客户端,在客户端用SQLConnection1和服务器端SQLConnection1(DataSnap2009)连接,
客户端主窗体为MDI窗体,在客户端的MDI子窗体里有如下几个控件DBGrid1、DBNavigator1、ClientDataSet1、DataSource1、DSProviderConnection1、,然后把数据结果显示在DBGrid1里(以上没有注明的控件都是只有一个)。
MDI子窗体FormClose的属性 Action:=caFree写了这么一句来释放子窗体,就是这句引起错误的,如果不写这句子窗体又关不掉(不写这句子不会出错的),只要子窗体被打开多次就会出错退出整个程序时就会出现以下这个错误
Exception EAccessViolation in module ClientPrj.exe at 00000000.
Access violation at address 00000000. Read of address 00000000.
不知有什么办法解决此问题,请指点。
客户端主窗体为MDI窗体,在客户端的MDI子窗体里有如下几个控件DBGrid1、DBNavigator1、ClientDataSet1、DataSource1、DSProviderConnection1、,然后把数据结果显示在DBGrid1里(以上没有注明的控件都是只有一个)。
MDI子窗体FormClose的属性 Action:=caFree写了这么一句来释放子窗体,就是这句引起错误的,如果不写这句子窗体又关不掉(不写这句子不会出错的),只要子窗体被打开多次就会出错退出整个程序时就会出现以下这个错误
Exception EAccessViolation in module ClientPrj.exe at 00000000.
Access violation at address 00000000. Read of address 00000000.
不知有什么办法解决此问题,请指点。
还是检查你释放的代码,与Action := caFree没有关系。
MDI中对象其它地方可有用到?
工程文件如下:begin
Application.Initialize;
Application.CreateForm(TDataModule1, DataModule1);
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TLogin_Frm, Login_Frm);
Application.CreateForm(TAboutBox, AboutBox);
Application.Run;
end.好像是MDI子窗体代码如下:procedure TcangkuFrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientDataSet1.Active:=False;
Action := caFree;
end;procedure TcangkuFrm.FormShow(Sender: TObject);
begin
ClientDataSet1.Active:=True;
end;只要子窗体被打开多次,退出整个程序时就会出错就会出现以下这个错误
Exception EAccessViolation in module ClientPrj.exe at 00000000.
Access violation at address 00000000. Read of address 00000000.
不知有什么办法解决此问题,请指点。
begin
SQLConnection1.Connected:=False;
end;