FireDAC TFDMemTable:
DataSets em Memória
Fernando Rizzato
Lead Software Consultant, Latin America
Embarcadero Technologies Copyright 2016
AGENDA
§ Criando e Preenchendo
§ Persistência em Design e Runtime
§ .SaveToFile, .LoadFromFile
§ .SaveToStream, .LoadFromStream
§ .CopyDataSet versus .Data
§ .CloneCursor
§ Otimizando a Performance
§ Aplicações Comuns
Embarcadero Technologies Copyright 2016
CRIANDO E PREENCHENDO
Embarcadero Technologies Copyright 2016
PERSISTÊNCIA EM DESIGN E RUNTIME
§ SaveToFile, LoadFromFile, SaveToStream, LoadFromStream
§ Formatos
§ sfAuto
§ Baseado na extensão do arquivo
§ sfBinary (uses FireDAC.Stan.StorageBin)
§ Mais eficiente
§ sfXML (uses FireDAC.Stan.StorageXML)
§ Menos eficiente
§ sfJSON (uses FireDAC.Stan.StorageJSON)
§ Amplamente aceito, especialmente mobile
Embarcadero Technologies Copyright 2016
.COPYDATASET VERSUS .DATA
§ .CopyDataSet copia os registros do dataset de origem (source)
§ .CopyDataSet funciona como uma sincronização de datasets
§ .CopyDataSet funciona com qualquer dataset, enquanto .Data
somente com datasets FireDAC
§ .CopyDataSet dispara todos os eventos, enquanto .Data apenas
atribui toda a massa de dados
§ .CopyDataSet copia somente os valores atuais, enquanto .Data
preserva versões e estado (inserted, deleted, updated)
§ .Data é muito mais rápido que .CopyDataSet
Embarcadero Technologies Copyright 2016
.CLONECURSOR
§ Compartilha os dados que pertencem a um outro dataset
§ O armazenamento de dados interno é fisicamente o mesmo para
ambos datasets
§ AReset = False e AKeepSettings = False, propriedades de origem
são copiadas para o destino
§ AReset = True, propriedades retornam para o valor padrão no
dataset de destino
§ AReset = False e AKeepSettings = True, propriedades no destino
não são alteradas
Embarcadero Technologies Copyright 2016
OTIMIZANDO A PERFORMANCE
Embarcadero Technologies Copyright 2016
APLICAÇÕES COMUNS
§ FireDAC JSON Reflection
§ Http://docwiki.embarcadero.com/RADStudio/en/Tutorial:
_Using_a_REST_DataSnap_Server_with_an_Application_a
nd_FireDAC
§ http://docwiki.embarcadero.com/Libraries/en/Data.FireD
ACJSONReflect
§ JSON DataSet Adapter
§ http://docwiki.embarcadero.com/CodeExamples/en/REST.
SurfSpotFinder_Sample_(Delphi)
§ http://docwiki.embarcadero.com/Libraries/en/REST.Respo
nse.Adapter.TRESTResponseDataSetAdapter
Embarcadero Technologies Copyright 2016
Mãos a Obra!
Embarcadero Technologies Copyright 2016 9
RECURSOS ADICIONAIS
§ Documentação
§ http://docwiki.embarcadero.com/Libraries/en/FireDAC.Comp.Client.TFDCustomMemTable
§ http://docwiki.embarcadero.com/Libraries/en/FireDAC.Comp.Client.TFDMemTable
§ http://docwiki.embarcadero.com/RADStudio/en/TFDMemTable_Questions
§ Blogs
§ CodeRage 9: TFDMemTable & CDS Compared
§ http://youtu.be/iNgHJakYWkU
§ Q&A: http://wiert.me/2014/10/30/coderage-9-qa-log-clientdatasets-and-
fdmemtables-compared/
§ CodeRage 9: FireDAC Tips, Tricks and News
§ http://youtu.be/gljfudAKlTI
Embarcadero Technologies Copyright 2016
OBRIGADO!
Perguntas?
Você pode me encontrar em:
@FernandoRizzato
[email protected] Siga-nos em
fb.com/DelphiBrasil
fb.com/EmbarcaderoBR
Embarcadero Technologies Copyright 2016 11