在DLL中使用DataModule中表的错误



我有一个应用程序,工作正常…将其移植为DLL来实现。我有一个数据模块,有我的数据库和表组件在它…在"设计模式"下,数据库设置为"活动"。表指向数据库,它们被设置为活动状态。我可以右键单击表,转到字段编辑器,看到所有列,所以我知道结构/属性设置得很好....

问题是在运行时…它给出了这一行的AV…

 if MyDataModule.DB1.Connected = True then
  ShowMessage('Active')
   else 
 ShowMessage('Not Active');

我在网上看到了一些提示,需要做一些特殊的事情来使用DLL内的数据模块,但我没有得到任何工作。

具体错误信息为:

模块'DocAssistCom.dll'读取地址0000070'时地址06D4E22E发生访问冲突

在尝试使用MyDataModule.DB1.Connected之前,您应该验证MyDaModule确实已创建,然后MyDataModule.DB1也已创建。

if Assigned(MyDataModule) then
  if Assigned(MyDataModule.DB1) then
    if MyDataModule.DB1.Connected = True then
      ShowMessage('Active')
    else 
      ShowMessage('Not Active')
  else
    ShowMessage('MyDataModule.DB1 not assigned')
else
  ShowMessage('MyDataModule not assigned');

但是当您尝试使用它们时,它们可能仍然没有完全创建和准备好。

所以,而不是传播ShowMessage调用周围,我宁愿使用OutputDebugstring调试IDE中的DLL 查看代码路径…

注意:我不知道您使用的是Delphi和Windows的哪个版本,但请注意,TTable需要BDE(现在已经不赞成了)…

相关内容

  • 没有找到相关文章

最新更新