Tutorial ClientDataset e como usar

Delphi

18/03/2013

Boa tarde pessoal, gostaria de um tutorial sobre como usar o ClientDataset com CRUD e pesquisa com MySql 5.

Obrigado.
Frederico Brigatte***

Frederico Brigatte***

Curtidas 0

Respostas

Vagner Almeida

Vagner Almeida

18/03/2013

Aqui mesmo no DevMedia, há no menu CURSOS/Delphi...

Tem um curso somente sobre ClientDataSet

Dá uma olhada lá, são vídeo aulas.
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Complementando o que nosso amigo Vagner disse, o link é: https://www.devmedia.com.br/curso/trabalhando-com-clientdataset/108
GOSTEI 0
Douglas

Douglas

18/03/2013

Opa !

eu tenho artigo antigo que escrevi, faz um tempo

derrepente pode lhe ajudar.

GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Obrigado pelo retorno. O llink das video aulas do Vagner é o que ta postado aqui?
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Obrigado pelo retorno. O link das video aulas do Vagner é o que ta postado aqui? Gostaria que tivesse CRUD e Pesquisa também.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Obrigado pelo retorno. O link das video aulas do Vagner é o que ta postado aqui? Gostaria que tivesse CRUD e Pesquisa também. Gostaria que não fosse com DbNavigator também, mas valeu pela ajuda Douglas, vou dar uma lida no post.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Ninguém? To precisando de ajuda. ClientDataSet com CRUD sem DbNavigator e pesquisa
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

To empacado, quero usar o ClientDataSet e NÃO SEI. Alguém pode me ajudar do zero? Como gravar, editar, deletar registros e consultar sem utilizar o DbNavigator? Uma outra dúvida, DbNavigator é bom? É melhor utilizar o DbNavigator ou programar na mão os métodos?
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Comando básicos:
ClientDataSet.Append; // insere nova linha
ClientDataSet.Delete; // apaga registro
ClientDataSet.Edit; // edita registro
ClientDataSet.ApplyUpdates(0); // salva no BD
ClientDataSet.Refresh; // atualiza campos
ClientDataSet.Locate('NOME_DO_CAMPO'; VALOR A SER BUSCADO; [PREFERENCIAS DE BUSCA]); // busca dados

ClientDataSet.Open; // coloca dados em memoria, permite operações
ClientDataSet.Close; // fecha o componente


Espero ter ajudado para uma ideia inicial.
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Ops, uma correção.
Os parâmetros são separados por vírgula:

ClientDataSet.Locate('NOME_DO_CAMPO', VALOR A SER BUSCADO, [PREFERENCIAS DE BUSCA]); // busca dados
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Luiz Antônio Menin.

Primeiramente, obrigado pelo retorno. Esses comandos tem que estar um em cada botão?

Um para esse:
ClientDataSet.Append; // insere nova linha

Um para esse:
ClientDataSet.Delete; // apaga registro

Um para esse:
ClientDataSet.Edit; // edita registro

Um para esse:
ClientDataSet.ApplyUpdates(0); // salva no BD

Um para esse:
ClientDataSet.Refresh; // atualiza campos

Um para esse:
ClientDataSet.Locate('NOME_DO_CAMPO'; VALOR A SER BUSCADO; [PREFERENCIAS DE BUSCA]); // busca dados

ClientDataSet.Open; // coloca dados em memoria, permite operações
ClientDataSet.Close; // fecha o componente


GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Luiz Antônio Menin.

Primeiramente, obrigado pelo retorno. Esses comandos tem que estar um em cada botão?

Um para esse:
ClientDataSet.Append; // insere nova linha

Um para esse:
ClientDataSet.Delete; // apaga registro

Um para esse:
ClientDataSet.Edit; // edita registro

Um para esse:
ClientDataSet.ApplyUpdates(0); // salva no BD

Um para esse:
ClientDataSet.Refresh; // atualiza campos

Um para esse:
ClientDataSet.Locate('NOME_DO_CAMPO'; VALOR A SER BUSCADO; [PREFERENCIAS DE BUSCA]); // busca dados

ClientDataSet.Open; // coloca dados em memoria, permite operações
ClientDataSet.Close; // fecha o componente




Exato, um comando para cada botão, mas existe um porém. Você terá que adicionar mais de um comando para excluir ou salvar.

Quando você abre o form (evento OnShow), dê um ClientDataSet.Open;

Para excluir:
ClientDataSet.Delete; // apaga registro
ClientDataSet.ApplyUpdates(0);
ClientDataSet.Refresh;


Para salvar:
ClientDataSet.ApplyUpdates(0);
ClientDataSet.Refresh;


Quando você fechar o form (evento OnClose), dê um ClientDataSet.Close;
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Ok, e no caso de uma pesquisa, como faria? E o procedimento para conectar com o MySql 5, por exemplo, teria algum modelo?
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Para realizar uma pesquisa, você teria que ter um Edit para o usuário inserir o valor a ser consultado e um botão. Neste botão você coloca o código:

Exemplo:
ClientDataSet.Locate('CLIE_NOME', 'edtNomeCliente.Text', []);


Ou se quiser que apareça SOMENTE o que você quer buscar:
ClientDataSet.Filter := 'CLIE_NOME = ' + QuotedStr(edtNomeCliente.Text);
ClientDataSet.Filtered := True;
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Legal, e como faria um projeto do zero, como que faço? Quais componentes uso e como usar? Teria um exemplo?
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Legal, e como faria um projeto do zero, como que faço? Quais componentes uso e como usar? Teria um exemplo? Com uma tabelinha simples, só pra começar a aprender a usar o ClientDataSet.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Meu email é: frederico.brigatte@gmail.com Se puder mandar algum exemplo, ficaria MUUUUUITO agradecido.
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Sinceramente se tu nunca fez um projeto em Delphi, recomendo assistir a algumas vídeo aulas para iniciar. Um simples exemplo não seria suficiente para desenvolver um projeto de qualidade.
Recomendo esse curso: https://www.devmedia.com.br/curso/delphi-fundamental-win32-introducao-a-programacao-de-sistemas-com-delphi-win32/43
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Eu programo em Delphi sim, só que nunca utilizei ClientDataSet. Utilizo Access, estou querendo migrar para MySql, por isso a dúvida, entendeu?
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Ah, entendi.
Bom, é simples: você estuda o artigo que o nosso amigo passou (https://www.devmedia.com.br/delphi-e-conexao-com-o-mysql/23757) menos o último paragrafo, no qual ele utiliza o DBNavigator. E a partir disso tu utiliza os comandos que te passei (adicione botoes e dbgrid). Não tem erro.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Não abusando, tem como montar um exemplinho bem básico só pra ter como modelo, vou ler lá o artigo, mas vc pode fazer um exemplo? Vai ajudar MUUUUUITO.
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Não utilizo MySQL, não o tenho instalado no PC, mas vou fazer um exemplo de conexão e form.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Ok, vai ajudar e muito. Fico no aguardo. Vai mandar hoje? Que banco vai usar?
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Vou mandar daqui a pouco. Vou utilizar firebird.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Ok, poderia fazer com cadastros e consulta para ter o exemplo completo?
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Ok, já estou enviando. No código fonte existem alguns comentários para te auxiliar nas consultas. Fico no aguardo de um feedback.
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Seu email está correto?
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Ok, fico muito agradecido. Retornarei com o feedback sim, ta me ajudando muito mesmo. Obrigado. Fico no aguardo.
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Qual o seu email? Tentei enviar e está retornando...
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

frederico.brigatte@gmail.com
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Qual o seu, mando um pra vc ai vc me retorna.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Qual seu email, mando um pra vc. Pode ser?
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Luiz Antônio Menin. pq parou de responder? Me passa seu email que te mando um. Não recebi. To precisando muito disso, por favor.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Cade vc, Luiz, to esperando o seu email, e nada de resposta. Por favor......
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Olá, meu email é luizmenin@yahoo.com.br
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Acredito que tenha ocorrido algum erro no yahoo, não esta enviando emails. Te enviei com o hotmail.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Não recebi nada ainda.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Tem algum outro jeito de mandar? Algum ftp?
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Disponibilizei um link no SkyDrive:
http://sdrv.ms/11hjKOU
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Agora sim. Vc tem msn? O meu é frederico.brigatte@itelefonica.com.br

Em qual versão do Delphi vc fez?
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Não utilizo mais MSN. É mais facil me encontrar no facebook.
Utilizei Delphi XE.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Qual seria esse Delphi XE? Eu tenho o Delphi 7.
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

A linha XE é a mais recente do Delphi. Desenvolvido pela Embarcadero, atualmente se encontra na versão XE3.

http://pt.wikipedia.org/wiki/Embarcadero_Delphi
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Vou ver se instalo o XE, é complicado fazer no Delphi 7?
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Precisa fazer alguma coisa ou é só instalar o XE e rodar o exemplo?
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Neste caso é a mesma coisa nos dois. Mas em projetos mais complexos e que precisam ser multiplataforma, aí você terá que migrar para a versão mais recente. Ele é mais fácil de usar, mais organizado e com muito mais possibilidades.

A instalação é bem tranquila.
GOSTEI 0
Luiz Menin

Luiz Menin

18/03/2013

Neste caso, como é muito simples, é igual para as duas versões. Mas mesmo assim recomendo você atualizar sua versão do Delphi.
A instalação é muito simples.

O exemplo que te passei foi útil?
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Estou instalando o Delphi XE, que no caso é o 2010, certo? Vc tem algum site que eu possa baixá-lo? Acho que meu dvd ta ruim. Abri pelo Delphi 7 e deu alguns erros de propriedades. Mas parece que está legal. Não rodei ainda. No 7 da pra fazer?
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

O banco é Firebird? Qual versão e o link para baixar?
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Da dando erro erro quando abro o projeto:

Dbx Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wronf version, or the drive may be missing from the system path..

Qual a versão do banco? Preciso instalar o mesmo para sumir esse erro. Não tem o drive.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Luiz to com problema aqui. Me ajuda.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Luiz, to empacado aqui, me ajuda....
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Qual versão do Firebird vc fez?
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

18/03/2013

Foi o Delphi XE que foi desenvolvido o exemplo? Seria o XE - 2010, certo?

Tem as versões:

XE - 2010
XE2 - 2011
XE3 - 2012

Teria o link do Delphi utilizado para baixar? Meu dvd ta com problema.
GOSTEI 0
Bruno Leandro

Bruno Leandro

18/03/2013

tome cuidado com o midas.

"Até a versão 5 do Delphi, se usarmos o componente TClientDataSet teremos, invariavelmente, que distribuir juntamente com nosso aplicativo, a biblioteca midas.dll.

Porém a partir do Delphi 6 este inconveniente pode ser evitado. Para isto adicione no uses de seu aplicativo a unit MidasLib. Pode fazer isto na seção uses do form principal ou em qualquer outra unit."
GOSTEI 0
POSTAR