Я настраиваю TLocal SQL для моего приложения для нескольких устройств. Я понимаю, что этот компонент использует SQLite в качестве бэкенда, когда моя база данных MySQL находится на сервере удаленно.
В моем модуле данных я настроил следующее:
- TFDGUIxWaitCursor
- TFDConnection - для MySQL подключения к серверу
- TFDPhysMySQLDriverLink - MySQL драйвер
- TFDQuery - MySQL запрос таблицы
- TFDConnection - для моего Local SQL (SQLite backend)
- TFDPhysMySQLDriverLink - драйвер SQLite
- TFDLocal SQL - мой Local SQL для обработки встроенных база данных моего приложения с набором данных TFDQuery выше
- TFDQuery - мой локальный SQL запрос
мой модуль данных RME:
unit Unit10;
interface
uses
System.SysUtils, System.Classes, 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.MySQL,
FireDAC.Phys.MySQLDef, FireDAC.FMXUI.Wait, FireDAC.Stan.Param, FireDAC.DatS,
FireDAC.DApt.Intf, FireDAC.DApt, Data.DB, FireDAC.Stan.ExprFuncs,
FireDAC.Phys.SQLiteDef, FireDAC.Phys.SQLite, Datasnap.DBClient,
Datasnap.Provider, FireDAC.Comp.Client, FireDAC.Phys.SQLiteVDataSet,
FireDAC.Comp.DataSet, FireDAC.Comp.UI;
type
TDataModule10 = class(TDataModule)
con1: TFDConnection;
dvr1: TFDPhysMySQLDriverLink;
cur1: TFDGUIxWaitCursor;
qry1: TFDQuery;
loc1: TFDLocalSQL;
dvr2: TFDPhysSQLiteDriverLink;
con2: TFDConnection;
qry2: TFDQuery;
dsp1: TDataSetProvider;
cds1: TClientDataSet;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule10: TDataModule10;
implementation
{%CLASSGROUP 'FMX.Controls.TControl'}
{$R *.dfm}
end.
Теперь на моей главной Форма (ниже RME), где находится мой TListView, соединяет TFDQuery с моим TFDLocal SQL.
unit Unit9;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.ListView.Types, FMX.ListView.Appearances, FMX.ListView.Adapters.Base,
System.Rtti, System.Bindings.Outputs, Fmx.Bind.Editors, Data.Bind.EngExt,
Fmx.Bind.DBEngExt, Data.Bind.Components, Data.Bind.DBScope, FMX.ListView;
type
TForm9 = class(TForm)
lsv1: TListView;
bdr1: TBindSourceDB;
bdl1: TBindingsList;
lcf1: TLinkListControlToField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form9: TForm9;
implementation
uses
Unit10;
{$R *.fmx}
end.
Я запустил его на Windows 64-битной платформе без каких-либо проблем.
Но когда я попробовал это на своей платформе устройства Android, я получаю следующая ошибка:
[DCC Fatal Error] dm_u.pas(10): F2613 Unit 'FireDAC.Phys.MySQL' not found.
Я немного запутался, потому что это цель TFDLocal SQL. Он должен обрабатывать разные источники данных, будь то с разных серверов, xml, et c и встраивать их в ваше приложение с использованием базы данных SQLite.
Надеюсь, мой уровень понимания все понял правильно.
Теперь я застрял на том, как обойти ошибку. Я не могу изменить драйвер, потому что мои исходные данные на самом деле MySQL.
Может кто-нибудь рассказать мне больше о TFDLocal SQL. Я впервые использую его, и он хорошо подходит для моей цели. Я что-то упустил?