Status ClientDataSet

23/03/2016

7

Boa noite,

No form tenho os seguintes componentes IBQuery, DataSetProvider, ClientDataSet e DataSource, no IBQuery tem um select que faço sobre uma procedure do BD,
quando abre o ClientDataSet ele carrega o resultado do select, então estou tentando de fazer a inserção em uma tabela no BD usando o ApplyUpdates, neste caso não
ocorre erro mas não grava tambem, isto porque o status do ClientDataSet não esta em modo de inserção, ha possibilidade de mudar o status para que o applyUpdate
grave os dados ou não vai funcionar.

Ornei
Responder

Posts

24/03/2016

Luiz Menin

Você precisa informar mais alguns detalhes para que eu possa te ajudar.
Como é seu SQL?
Como você está fazendo a inserção dos dados no ClientDataSet?
Responder
Se puder, poste o código que está usando para editar/inserir e gravar no ClientDataSet.

Veja um exemplo para gravar:

   with ClientDataSet1 do
   if State in [dsEdit, dsInsert] then //Se estiver no modo edição ou inserção
   begin
     Post;
     ApplyUpdates(-1);
   end;


Veja este link:
http://www.devmedia.com.br/forum/clientdataset-not-in-edit-or-insert-mode/438521
Responder

24/03/2016

Raylan Zibel

IBQuery? IBQuery não grava. Tenta usar um IBDataSet e cria os SQLs no DataSet Editor (botão direito no dataset).
Responder

25/03/2016

Ornei Silva

Quando usa insert no ClientDataSet o UpdateStatus=usInserted, a minha ideia e trazer o resultado de um
select para ClientDataSet e mudar UpdateStatus para usInserted para não usar o insert, para aplicar
o applyupdate, que neste caso fica usUnmodified
Responder