Trabalhando com TClientDataSet - Quick Tips - ClipaTec Informática
16:27 Quick Tips Sem comentários
Trabalhando com TClientDataSet - Quick Tips
Nesse artigo vamos dar algumas dicas sobre o componente TClientDataSet.
Quando trabalhamos com TClientDataSet, na hora de inserir o registro, grande parte dos programadores já vão direto para a parte de colocar a tabela em modo de inserção, em seguida, atribuir os dados para os campos do dataset. Acontece muito de as vezes ocorrer o famoso erro de dataset fechado, não é possível realizar uma inserção ou edição de dados de um dataset, se o mesmo estiver fechado. Nós podemos resolver este problema facilmente apenas fazendo uma pequena verificação antes. Temos que verificar se o dataset está ativo ou não, se ele não estiver ativo (aberto), então, damos um "Open" nele.
Veremos abaixo, um exemplo de inserção de dados num ClientDataSet.
If not(ClientDataSet.Active) then
ClientDataSetCAMPO1.AsInteger := Valor1;
ClientDataSetCAMPO2.AsString := Valor2;
Então, antes de realizarmos qualquer operação com o ClientDataSet, primeiro verificamos se o mesmo está ativo, se não estiver, abrimos ele, em seguida colocamos em modo de inserção, e alimentamos os campos.
No final, chamamos o método "Post" para salvar o registro no ClientDataSet.
Vale ressaltar que o "Post" não salva o registro no banco, e sim no cache do ClientDataSet. Para que o registro seja persistido no banco de dados, é necessário chamar o método "ApplyUpdates" no evento "AfterPost" do ClientDataSet.
Assim finalizamos esta dica de hoje, que server mais para iniciantes, pois sempre recebemos vários mensagens de leitores sobre este erro, fazendo essa adaptação em sua implementação, você já evita que o erro de dataset fechado ocorra.