Olá galera, salve, salve.
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
ClientDataSet.Open;
ClientDataSet.Append;
ClientDataSetCAMPO1.AsInteger := Valor1;
ClientDataSetCAMPO2.AsString := Valor2;
...
ClientDataSet.Post;
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.
Abraço e até a próxima.
(Por ClipaTec Informática)
0 comments:
Postar um comentário
Visite nossa página de Política de comentarios antes de comentar para ter certeza de que seu comentário não será excluído! Lembre-se, assim que aprovarmos o teu comentário ele será publicado, por isso, não deixe de sempre visitar nosso blog e conferir nossa resposta ao seu comentário, abraço!