ClientDataSet - Em memória
estou usando o Delphi 5 e preciso colocar os campos selecionados de um grid dentro de um cds. Porem não quero que este cds esteja ligado à alguma tabela, mas que ele armazenasse tudo em memória e depois descarregasse em outra tabela, obedecendo regras já estabelicidas. Eu cliquei com o botão direito do mouse e não veio a opção MyBase e etc.. do cds. Como faria isso? Criaria campos agregados? Gostaria que no momento que eu desselecionasse no grid, no cds aquele(s) campo(s) fosse deletado também. Tô apanhando.
Paulo
Curtidas 0
Respostas
Paulo
18/02/2009
Fiz assim, mas não está funcionando. Não entra no laço For. Sei que está errado e gostaria de ajuda dos colegas para resolver mais este.
var contador: Integer; bkm: TBookmarkList; bkm_str: TBookmarkStr; begin bkm_str := qryProd.Bookmark; bkm := grdProd.SelectedRows; if not cdsProd.Active then cdsProd.Open; //With Grid do for contador:= 0 to pred(bkm.Count) do Begin qryProd.BookMark := bkm[contador]; cdsProd.Append; cdsProd.FieldByName(´NUM_Chamado´).AsString := copy(Grid.Fields[1].AsString,Pos(´-´,Grid.Fields[1].AsString)-1,255); cdsProd.FieldByName(´Cod_Crise´).AsString := Grid.Fields[3].AsString; cdsProd.FieldByName(´Materia´).AsString := Grid.Fields[4].AsString; cdsProd.FieldByName(´Qtd_Materia´).AsString := Copy(Grid.Fields[4].AsString,1,3); cdsProd.FieldByName(´Comunicado´).AsString := Grid.Fields[13].AsString; cdsProd.Post; end; end;
GOSTEI 0
Ivanh
18/02/2009
Nos componentes Jedi, tem um chamado [b:d9fd7686c9]TJvMemoryDataset[/b:d9fd7686c9], eh fácil de usar.
GOSTEI 0
Paulo
18/02/2009
Eu conheço o componente, mas eu não posso usar Jedi aqui. Aliás, componente nenhum de terceiros. A solução tem que ser aquela disponivel no delphi, mas valeu pela dica!!!
GOSTEI 0
Paullsoftware
18/02/2009
Bom dia!
você não pode setar o seu CDS para um arquivo XML não? tipo:
ou por outra crie seu CDs em Run-Time para que ele fique totalmente em memória usando a mesma lógica que te passei!
espero ter ajudado :wink:
você não pode setar o seu CDS para um arquivo XML não? tipo:
cds.filename:=´c:\cdsTemp.xml´; cds.CreateDataSet; .... //Instruções a serem realizadas
ou por outra crie seu CDs em Run-Time para que ele fique totalmente em memória usando a mesma lógica que te passei!
espero ter ajudado :wink:
GOSTEI 0