ClientDataSet com DBExpress

Delphi

03/05/2011

Estou iniciando o uso do CleintDataSet e estou com algumas dúvidas sobre a sintaxe do delete e do edit.

Gostaria de um exemplo de como implementar esses comandos, uma vez que quando executo o código abaixo dá mensagem de erro:

Clientdataset.delete;
Clientdataset.post;
Clientdataset.ApplyUpdate(0);

Macedo.
Francisco Macedo

Francisco Macedo

Curtidas 0

Respostas

Alan Souza

Alan Souza

03/05/2011

retire a linha do post, ela não é necessária.
GOSTEI 0
Francisco Macedo

Francisco Macedo

03/05/2011

Caro alanps!

Como saber se o registro correto está sendo deletado?

Você poderia me enviar um comando completo para deletar um determinado registro.

Macedo.


GOSTEI 0
Alan Souza

Alan Souza

03/05/2011

o comando Delete vai apagar o registro corrente, então se vc deseja apagar um determinado registro pode navegar no DataSet ou usar Locate:

ClientDataSet1.Locate('campo',valoraserbuscado,[]);


os colchetes podem ser preenchidos com os parâmetros loPartialKey e loCaseInsensitive.

ou, dependendo da sua aplicação, vc pode habilitar o CommandText e escrever direto um Delete por SQL através dele.
GOSTEI 0
Francisco Macedo

Francisco Macedo

03/05/2011

Tentei implementar o comando abaixo:

     DM.ClientDataSet.Delete;
     DM.ClientDataSet.ApplyUpdates(0);

e deu a mensagem de erro:

prjproject.exe raised exception class TDBError with message 'Column Unknown @1 At line@1, Column @2'
GOSTEI 0
Rodrigo Mattos

Rodrigo Mattos

03/05/2011

o que você colocou no seu SQL?
GOSTEI 0
Rodrigo Mattos

Rodrigo Mattos

03/05/2011

o que você colocou no seu SQL?




É uma coluna que não existe, executa seu Select no IBExpert.
GOSTEI 0
Francisco Macedo

Francisco Macedo

03/05/2011

Coloquei o seguinte:

SELECT A.*,B.* FROM CADASTRO A, ENDERECO B WHERE A.CPF=B.CPF
ORDER BY A.CPF

GOSTEI 0
Francisco Macedo

Francisco Macedo

03/05/2011

O SQL funciona corretamente no IBExpert.
GOSTEI 0
Rafael Mattos

Rafael Mattos

03/05/2011


   SELECT A.*,B.* FROM CADASTRO A, ENDERECO B WHERE A.CPF=B.CPF

   ORDER BY A.CPF



é pq vc ta tentando dar um delete, e vc tem uma junção do CADASTRO E ENDERECO vai dar erro mesmo, até uma simples alteração no cadastro vai dar erro faz o teste pra vc ver.

altera seus ProviderFlags que da certo
GOSTEI 0
POSTAR