问题描述
我在运行有2个TFDConnections和相同sqlite驱动程序的iOS平台上运行TFDQuery时遇到问题。该应用程序已安装并尝试打开,但立即关闭,没有任何错误消息。当在设计时或运行时将TFDQuery设置为active = true时,就会出现错误。@H_502_1@
我拥有2个TFDConnections的原因之一是我需要RestAPI Localsql,另一个是我的嵌入式数据库(sqlite3)。@H_502_1@
我没有在Windows目标平台上遇到此问题。我尚未尝试使用Android。@H_502_1@
这是此案的我的MRE。请注意,由于该错误仅限于TFDConnections和TFDQuery,因此在此示例中未包含RestAPI Localsql。@H_502_1@
FMX程序: @H_502_1@
unit main_u;
interface
uses
System.SysUtils,System.Types,System.UITypes,System.Classes,System.Variants,FMX.Types,FMX.Controls,FMX.Forms,FMX.Graphics,FMX.Dialogs,FireDAC.Stan.Intf,FireDAC.Stan.Option,FireDAC.Stan.Error,FireDAC.UI.Intf,FireDAC.Phys.Intf,FireDAC.Stan.Def,FireDAC.Stan.Pool,FireDAC.Stan.Async,FireDAC.Phys,FireDAC.Phys.sqlite,FireDAC.Phys.sqliteDef,FireDAC.Stan.ExprFuncs,FireDAC.FMXUI.Wait,Data.DB,FireDAC.Comp.Client,System.IoUtils,FireDAC.Stan.Param,FireDAC.DatS,FireDAC.DApt.Intf,FireDAC.DApt,FireDAC.Comp.UI,FireDAC.Comp.DataSet;
type
TForm9 = class(TForm)
con2: TFDConnection;
qry1: TFDQuery;
cur1: TFDGUIxWaitCursor;
dvr1: TFDPhyssqliteDriverLink;
con1: TFDConnection;
procedure con2BeforeConnect(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form9: TForm9;
implementation
{$R *.fmx}
procedure TForm9.con2BeforeConnect(Sender: TObject);
begin
{$IF DEFINED(iOS) or DEFINED(ANDROID)}
con2.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath,'smartcart.s3db');
{$ELSE}
con2.Params.Values['Database'] := 'D:\My Project Files\5. my_projects_aws-rest\project_x_v0\application\client\database\smartcart.s3db';
{$ENDIF}
end;
end.
object Form9: TForm9
Left = 0
Top = 0
Caption = 'Form9'
ClientHeight = 480
ClientWidth = 289
FormFactor.Width = 320
FormFactor.Height = 480
FormFactor.Devices = [Desktop]
DesignerMasterStyle = 0
object con2: TFDConnection
Params.Strings = (
'Database=D:\My Project Files\5. my_projects_aws-rest\project_x_v' +
'0\application\client\database\smartcart.sdb3'
'LockingMode=normal'
'DriverID=sqlite')
Connected = True
LoginPrompt = False
BeforeConnect = con2BeforeConnect
Left = 128
Top = 168
end
object qry1: TFDQuery
Active = True
Connection = con2
sql.Strings = (
'SELECT * FROM lists')
Left = 128
Top = 232
end
object cur1: TFDGUIxWaitCursor
Provider = 'FMX'
Left = 80
Top = 32
end
object dvr1: TFDPhyssqliteDriverLink
Left = 24
Top = 32
end
object con1: TFDConnection
Params.Strings = (
'DriverID=sqlite')
Connected = True
LoginPrompt = False
Left = 128
Top = 112
end
end
我已经进行了一些研究,但找不到与我的案子有关的任何解决方案。我可以说,TFDQuery对于在iOS平台上同时运行相同驱动程序的2个TFDConnections有一些错误或问题。@H_502_1@
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)