28/09/2004

ClientDataSet

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...


Acid_rain

Respostas

28/09/2004

Rômulo Barros

:arrow: [b:bd713eb88e][color=red:bd713eb88e]Amigo... isso q vc quer não sei se é possível. Mas, tente assim:[/color:bd713eb88e][/b:bd713eb88e]

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



Responder Citar

01/05/2005

Sergiomatos

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´)


Responder Citar