Array
(
)

ClientDataSet

Acid_rain
   - 28 set 2004

Estou com um grande problema.

Quanto eu usava o BDE com paradox e precisava usar tabelas temporárias eu as criava fisicamente atraves do método createtable do componente TTable.

Posteriormente se eu necessitasse somar um determinado campo eu colocava um componente do tipo TQuery com o select ´SELECT SUM(QTDE) FROM TEMPORARIA´, onde a temporaria era a que tinha sido criada através do componente TTable.

Problema:
Estou usando o TClientDataSet para trabalhar como tabela temporaria através de seu método CreateDataSet. Incluo, Excluo, Atualizo e consulto normalmente, sem problemas. Mas como faço pra que um outro ClientDataSet ou uma Query consiga consultar nos dados deste ClientDataSet??? Já que não há mais o arquivo (físico) para que eu possa acessar.

algo do tipo ´SELECT COUNT(*) FROM CLIENTDATASET1´.

Alguem sabe se isso é possível???

Sei que existem outras formas de se totalizar um campo, tipo o Aggregate e outros... mas necessito de uma solucao do tipo assima descrito... ou eu terei que mudar centenas de unit´s já feitas...


Rômulo Barros
   - 28 set 2004

:arrow: Amigo... isso q vc quer não sei se é possível. Mas, tente assim:

#Código

...
Var
CdsTemporario : TClientDataSet;
Begin
CdsTemporario.Data := ClientDataSetQuePossuiOsDados.Data;
// Aqui.. já podemos trabalhar com o Temporário criado.
// Utilize o Filter para "pesquisar"
End;



Sergiomatos
   - 01 mai 2005

vc pode trabalhar com ClientDataset gravando os dados em disco como anteriormente no paradox.

Para isso vc deve chamar a funcao ClientDataset.SaveToFile para salvar os dados da memoria para o disco e posteriormente quando necessario carregar os dados do disco para ClientDataset novamente atravez da funcao ClientDataSet.LoadFromFile(´nome_arquivo.cds´)