【发布时间】:2013-12-30 12:53:43
【问题描述】:
我对 Delphi XE5 Firedac 应用程序有疑问。我使用 ZTE Blade 3 手机运行应用程序。我使用部署管理器将数据库文件添加到 assets\internal 目录。但是当我调用 FDQuery1.FieldByName('Nimi').AsString 时,它会引发异常 Segmentation fault (11)。谢谢。
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('SELECT * FROM Laskuttaja');
FDQuery1.Open();
FDQuery1.First;
while(not FDQuery1.Eof) do begin
FormTiedot.EditNimi.Text := FDQuery1.FieldByName('Nimi').AsString;
FormTiedot.EditOsoite.Text := FDQuery1.FieldByName('Osoite').AsString;
FormTiedot.EditY.Text := FDQuery1.FieldByName('Ytunnus').AsString;
FDQuery1.Next;
end;
if FormTiedot.ShowModal = mrOk then begin
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('UPDATE Laskuttaja SET Nimi = '+QuotedStr(FormTiedot.EditNimi.Text)+', Osoite = ' + QuotedStr(FormTiedot.EditOsoite.Text) + ', Ytunnus=' + QuotedStr(FormTiedot.EditY.Text));
FDQuery1.SQL.Add('WHERE ID=1');
【问题讨论】:
-
在问题行设置调试器断点,然后运行您的应用程序。当断点被命中时,检查
FormTiedot看它是否真的有一个值。当您按名称引用表单时,这通常是一个不好的迹象,尤其是当这段代码在该表单的方法中运行时。 -
是的,谢谢您的帮助。我忘记了 TFormTiedot.Create() 调用。现在还有一个异常问题。异常类 ENotImplemented with message "
-
您安装了 XE5 Update 2 吗?如果没有,那么你应该安装它。