inserir registros pelo ClientDataSet

Delphi

29/09/2005

preciso incluir vários registros na base de dados, sendo que a intenção a abrir um ClientDataSet vazio e ir adicionando os registros, fazendo tratamento, ..., e depois inserir estes dados na tabela.
Como consigo abrir um ClientDataSet sem nenhum registro e depois atualizar os dados que adicionei?


Raserafim

Raserafim

Curtidas 0

Respostas

Bruno Belchior

Bruno Belchior

29/09/2005

a sua idéia é não trazer todos os registros para o cache, ou seja apenas inserir sem retornar um ResultSet? se sim *acho* que não há como fazer isso pois vc deverá estar ligado à consulta ou tabela... mas vc pode usar a propriedade [b:1854d31e5d]PacketRecords[/b:1854d31e5d] para limitar a uma quantidade x de registros q ficariam no CDS qdo ele for aberto...


GOSTEI 0
Vagner Monteiro

Vagner Monteiro

29/09/2005

É só vc não utilizar a propiedade loadfromfile do CDS.Faça o seguinte, crie o CDS e seus respectivos campos, depois no Form.Create coloque:

CDS.CreateDataSet;

para adicionar os dados no CDS:

CDS.Insert;
CDSRegistro.Asstring := Registro1;
CDS.Post;

Após inserir todos os registros no CDS faça o mesmo processo na tabela:

While not CDS.eof do
Begin
Tabela.Insert;
TabelaRegistro.Asstring := CDSRegistro.Asstring;
Tabela.Post;
CDS.Next;
end;

Se for isto, espero ter ajudado.


GOSTEI 0
Raserafim

Raserafim

29/09/2005

hee bruno, essa pode ser uma solução.
mas me diz uma coisa: a quantidade de registros vai ser limitada apenas do ClientDataSet? ou seja, o DataSetProvider vai fazer o tráfego dos dados na rede e só quando entregar para o Client é que estes dados são ser limitados a um registro?


GOSTEI 0
Raserafim

Raserafim

29/09/2005

Vagner, a ideia é mais ou menos essa, sendo que queria saber se não dá para adicionar os dados (como vc fez) mas ao invés de ir varrendo e adicionando, se não dá para fazer algo que dê para utilizar o ApplyUpdate?


GOSTEI 0
POSTAR