datasnap的前世今生


隨着XE6,XE7,以及半年以后即將發布的XE8,DATASNAP將順應跨平台的需要,

有可能的情況是這樣的:XE8,DATASNAP寫的中間件將可以運行在LINUX服務器上面。

大家都知道COM是WINDOWS特有的東西,為了跨平台,COM將被棄用。

DATASNAP殘留的COM基因的東西統統將被棄用,COM的數據序列格式OLEVARIANT將被棄用,

CLIENTDATASET的DATA和DELTA屬性是OLEVARIANT,因此也將被棄用,CLIENTDATASET的替代品是FDMEMTABLE,

DATASETPROVIDER的DATA屬性是OLEVARIANT,因此也將被棄用。

DBXEXPRESS的命運同歷史上的BDE一樣,同DATASNAP捆綁緊密的將會是FIREDAC。

FireDAC 在XE5 UPDATE2之后 增加了一個Data.FireDACJSONReflect單元,用於FIRDAC數據同JSON之間的相互轉換。

有意思的是,FIREDAC的數據集們,都像CLIENTDATASET一樣有DATA和DELTA屬性,看來CLIENTDATASET好的思路仍將被保留,

只不過數據格式不再是OLEVARIANT了,而是IFDDataSetReference接口。

附一段EMB的官方DEMO:

FDQuery1.SQL.Text := 'select * from orders; select * from customers';   FDQuery1.Open; FDQuery1.FetchAll; // assign orders records to FDMemTable1 FDMemTable1.Data := FDQuery1.Data;   FDQuery1.NextRecordSet; FDQuery1.FetchAll; // assign customers records to FDMemTable2 FDMemTable2.Data := FDQuery1.Data;

 

procedure TForm1.Button1Click(Sender: TObject);
begin

    OutFDMemTable.CachedUpdates := True;

    OutFDMemTable.Open;
    OutFDMemTable.Append;
    OutFDMemTable.FieldByName('Test').AsString := 'First Record';
    OutFDMemTable.Post;

    OutFDMemTableDelta.Data := OutFDMemTable.Delta; // copy only modified/inserted data

    OutFDMemTable.Close;
    OutFDMemTableDelta.Close;

End;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM