调用Firedac时Android delphi应用程序分段错误(11)异常

调用Firedac时Android delphi应用程序分段错误(11)异常,android,delphi,firedac,Android,Delphi,Firedac,我对Delphi XE5 Firedac应用程序有问题。我使用中兴通讯刀片3手机运行应用程序。我使用部署管理器将数据库文件添加到assets\internal目录。但是当我调用FDQuery1.FieldByName('Nimi').AsString时,它会引发异常分段错误(11)。谢谢 错误发生在这一行: FormTiedot.EditNimi.Text := FDQuery1.FieldByName('Nimi').AsString; 分段错误意味着您指的是无效内存。因此,出现这种情况的原

我对Delphi XE5 Firedac应用程序有问题。我使用中兴通讯刀片3手机运行应用程序。我使用部署管理器将数据库文件添加到assets\internal目录。但是当我调用FDQuery1.FieldByName('Nimi').AsString时,它会引发异常分段错误(11)。谢谢


错误发生在这一行:

FormTiedot.EditNimi.Text := FDQuery1.FieldByName('Nimi').AsString;
分段错误意味着您指的是无效内存。因此,出现这种情况的原因至少有以下一个:

  • FormTiedot
    无效
  • FormTiedot.EditNimi
    无效
  • FDQuery1
    无效
  • FDQuery1.FieldByName('Nimi')
    返回
    nil
现在,据我所知,
FieldByName()
引发异常以指示失败,而不是返回
nil
。而且
FDQuery1
肯定是有效的,否则前面的代码就会失败

因此,最可能的结论是
FormTiedot
FormTiedot.EditNimi
无效。可能您未能实例化
FormTiedot

我能够解决(我编译并在函数中给出错误)“TClientModule1.GetServerMethods1Client:TServerMethods1Client;”访问类fsServerMethods1Client… 进入菜单: 项目->选项->表格;


验证TClientModule1是否在自动创建表单中处于第一位。

在问题行上设置一个调试器断点,然后运行应用程序。当遇到断点时,检查
FormTiedot
以查看它是否实际有值。当您按名称引用表单时,这通常是一个错误的标志,尤其是当此代码以相同的方法运行时是的,谢谢你的帮助。我忘记了TFormTiedot.Create()-call。现在有另一个异常问题。异常类Enotimmented with message"您是否安装了XE5 Update 2?如果没有,那么您应该安装它。@user3146414:Btw,我只是有点惊讶,没有人评论您的while循环似乎没有意义,因为它会将FormTiedot编辑文本分配给循环中读取的最后一条记录的字段值,而不管以前记录中的字段值如何,因此它是无效的阅读前面的内容是浪费时间的(除非作业有副作用,你没有告诉我们)。
FormTiedot.EditNimi.Text := FDQuery1.FieldByName('Nimi').AsString;