Fórum Como fazer o apply update no clientdataset ?? isso mesmo !! #15687
14/02/2010
0
[#VIDEO-177#]
Carlos Faria
Curtir tópico
+ 0Posts
14/02/2010
Carlos Faria
[#VIDEO-178#]
Gostei + 0
14/02/2010
Carlos Faria
Gostei + 0
17/02/2010
Wesley Yamazack
Olha vou te dar uma rápida explicação sobre este trio de componentes.
SQLDataSet - Componente pelo qual passam as requisições para o BD, ou seja para incluir atualizar e deletar, tem que passar o comando para ele.
DataSetProvider - Imagina um tradutor portugues(SQLDataSet) / Coreano(ClientDataSet), ambos conseguem entender o que o outro fala ? Não, pois são idiomas diferentes, certo ? Com estes dois componentes é a mesma coisa, a linguagem que o CDS falava não é mesma que o SQLDataSet fala, por isso usamos um datasetprovider, para traduzer as requisições do clientdaset ou os comandos sql do SQLDATASET.
ClientDataSet - Faz cache de dados, permite altera incluir deletar, navegar, etc tudo em memória.
O comando applyUpdates, no meu caso, eu sempre coloco um método comum pego um CDSCliente por exemplo e vai em AfterPost, e coloca o seguinte
procedure TFrmProdutoTamanho.ClientDataSet1AfterPost(DataSet: TDataSet);
begin^
TClientDataSet(DataSet).ApplyUpdates(0);
end;
Assim todos os clients que voce quiser atualizar basta apontar os eventos afterpost, afterdelete para este metodo.
Mas ate agora nao resolvi teu problema certo? VAmos agora tentar resolver ele, ao inves de botar a instrucao no comandtext, coloque ela no teu SQLDataSet, e nao precisa colocar parametro, isso voce pode fazer atraves do filter do clientdataset, dai os comandos que voce quer fazer, alterar por exemplo, cria um botao alterar, e coloca o seguinte codigo :
DSpadrao.DataSet.post;
DSpadrao.DataSet.insert;
DSpadrao.DataSet.delete;
DSpadrao.DataSet.First;
DSpadrao.DataSet.Last;
E por ai vai, tudo você pode controlar atraves deles, e o applyupdates fica direto no momento que ocorrerem aqueles dois eventos, afterdelete, afterpost.
Lhe digo que é melhor colocar os 3 componentes sempre em um DataModulo, e de preferencia em fila,
SDSCliente DSPCLiente CDSCliente
SDSFornecedor DSPFOrnecedor CDSFOrnecedor
SDSVenda DSPVenda CDSVenda
Desta forma que eu faço fica mais facil de dar manutenção quando estão numa fileira.
Sacou meu amigo ? Ainda não vi sua outra video pois a internet onde estou esta muito lenta.
Um abraço
Gostei + 0
17/02/2010
Carlos Faria
Gostei + 0
19/02/2010
Wesley Yamazack
Wesley Y
Gostei + 0
20/02/2010
Carlos Faria
Gostei + 0
21/02/2010
Wesley Yamazack
ME diga uma coisa, qual é o Tipo do BtnApply ? TButton ou TSpeedButton ?
Outra coisa, toda e qualquer alteração que vocÊ for fazer, tem que ter um CDS.Post, para confirmar a atualização e logo em seguida sim, o applyUpdates, você esta fazendo isso ? Post e depois Apply ?
Dica :
Ao consultar um Telefone, cloque o CDS em modo de Edição, ou seja : CDS.Edit, ao terminar a alteração cds.post, e pronto, veja se isso não irá funcionar.
Nâo esquecendo do Applyupdates.
Fico no aguardo.
Att,
Wesley Y
Gostei + 0
21/02/2010
Carlos Faria
Gostei + 0
22/02/2010
Wesley Yamazack
Me confirma isso que eu vou fazer um exemplo pra ti, usando SQL Server vlw ?
Um abraço
Wesley Y
Gostei + 0
23/02/2010
Carlos Faria
Gostei + 0
23/02/2010
Wesley Yamazack
Abs
Wesley Y
Gostei + 0
24/02/2010
Wesley Yamazack
INfelizmente não estou conseguindo baixar o SQL Server 2008 Express, vou fazer com Firebird 2.0 ok ? Posso fazer assim ? E você adpta para SqlServer ok ?
Um abraço
Welsey Y
Gostei + 0
24/02/2010
Wesley Yamazack
Esta ai um exemplo funcional de como trabalhar com ClientDataSet, Usando FireBird 2.0,
Exemplo : http://www.4shared.com/file/228851458/63737f5f/BDFB.html
FireBird : http://www.firebirdsql.org/index.php?op=files
Observação : Eu não coloquei os componentes num DataModule, mas o correto seria estar em um DataModule.
Um abraço
Wesley Y
Gostei + 0
02/03/2010
Carlos Faria
Gostei + 0
03/03/2010
Wesley Yamazack
Você esta usando delphi 2010, certo ? SQL server 2008 ? ou o 2005 ? Qual é o erro ?
Um abraço
Wesley Y
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)