Como criar um ClientDataset em tempo de execução
Segue abaixo código fonte de como criar um ClientDataset em tempo de execução.
Criar um novo ClientDataset
Var
MyClient : TClientDataSet;
Begin
MyClient := TClientDataSet.Create(nil);
Adicionando campos
MyClient.FieldDefs.Add('NM_CAMPO' , TIPO, TAMANHO, E_OBRIGATORIO);
NM_CAMPO -> Nome do Field a ser adicionado
TIPO -> ftString, ftInteger, ftBoolean, ftFloat, conforme sua necessidade.
TAMANHO -> Mais utilizado para campos ftString, outros tipos deve usar 0 (zero).
Abrindo o DataSet
MyClient.CreateDataSet;
MyClient.LogChanges := False;
LogChanges = False, desabilita os logs de alteração e inserção dando performance na manipulação do ClientDataset।
Adicionando Indices
MyClient.AddIndex(‘NM_INDICE', 'NN_FIELD, NM_FIELD1', [DS_ORDEM]);
NM_INDICE – Nome do novo índice
NM_FIELD – Lista de fields que devem participar do índice
DS_ORDEM -> ixPrimary, ixUnique, ixDescending, ixCaseInsensitive, ixExpression, ixMonMaintained, [] é usado para nenhum dos descritos anteriores.
Ativando Indice
MyClient.IndexName := 'NM_INDICE';
Acesssando os Campos
MyClient.FindField(‘NM_FIELD’).asTipo
Importante
Não esqueça de liberar a memória quando o ClientDataset não for mais usado
MyClient.Free;