这是我前一段时间在这里写的一些答案的代码,这是使用LocalSQL
的独立示例,已在D10.2(西雅图)中进行了测试。它足以使您前进。如您所知,Istr使其正常工作的关键是在EMBA文档中的某处评论FD的LocalSQL基于Sqlite。
procedure TForm3.CopyData2;
begin
DataSource2.DataSet := FDQuery1;
FDConnection1.DriverName := 'SQLite';
FDConnection1.Connected := True;
FDLocalSQL1.Connection := FDConnection1;
FDLocalSQL1.DataSets.Add(FDMemTable1);
FDLocalSQL1.Active := True;
FDQuery1.SQL.Text := 'select * from FDMemTable1 order by ID limit 5';
FDQuery1.Active := True;
FDMemTable1.Close;
FDMemTable1.Data := FDQuery1.Data;
end;
procedure TForm3.FormCreate(Sender: TObject);
var
i : integer;
MS : TMemoryStream;
begin
FDMemTable1.CreateDataSet;
for i := 1 to 10 do
FDMemTable1.InsertRecord([i,'Row:' + IntToStr(i),10000 - i]);
FDMemTable1.First;
// Following is to try to reproduce problem loading from stream
// noted by the OP,but works fine
MS := TMemoryStream.Create;
try
FDMemTable1.SaveToStream(MS,sfBinary);
MS.Position := 0;
FDMemTable1.LoadFromStream(MS,sfBinary);
finally
MS.Free;
end;
end;
如您所见,您可以在SQL中仅通过使用其组件名称来引用现有FireDAC数据集。
本文链接:https://www.f2er.com/3115126.html