Fórum deletar da tabela via parametros #332263

29/10/2006

0

pessoal, na minha aplicação multi camadas SOAP eu gostaria de enviar do aplicativo cliente para o servidor de aplicação o parametro necessário para deletar o registro que está selecionado.

o relacionamento entre os componentes dos meus aplicativos basicamente é assim:

1. camada servidor de aplicação

- TSQLQuery ( select * from NBR10004_2004_SUBS where ID = :PID )
- TDataSetProvider
- TSqlConnection

2. Camada cliente

- TSoapConnection
- TClientDataSet (apontando para o SoapConnection e o dataSetProvider no servidor de aplicação, e dando um ´Fetch Params´)
- TDataSource

bom, meu código para inserir e salvar cia parametros funciona tranquilamente, porem o meu código para excluir um determinado registro me acusa o erro: ´clientDataSet not in Insert or Edit mode´

vou postar aqui em sequencia o código que uso para incluir, salvar e excluir (que está me retornando o erro). Quem puder me dar uma luz, fico grato..

//INCLUINDO UM REGISTRO
procedure TCadRSubs.insere(sender: TObject);
begin
DM.Soapconnection.Open;
    try
       DM.ClientDataSet.Close;
       DM.ClientDataSet.Params[0].AsInteger :=  -1;
       DM.ClientDataSet.Open;
       DM.ClientDataSet.Insert;       
    finally
      DM.Soapconnection.Close;
    end;
end;

procedure TCadRSubs.NovoExecute(Sender: TObject);
begin   
    insere(nil);
end;


// SALVANDO UM REGISTRO
procedure TCadRSubs.SalvarExecute(Sender: TObject);
begin
DM.ClientDataSet.Post;
DM.ClientDataSet.ApplyUpdates(0);
end;


//EXCLUINDO O REGISTRO SELECIONADO
procedure TCadRSubs.exclui(sender: TObject);
begin
    DM.Soapconnection.Open;
    try
       DM.ClientDataSet.Close;
       DM.ClientDataSet.Params[0].AsInteger :=  DM.ClientDataSet_ID.AsInteger;
       DM.ClientDataSet.Open;
       DM.ClientDataSet.delete;
       DM.ClientDataSet.Post;
       DM.ClientDataSet.ApplyUpdates(0);
    finally
      DM.Soapconnection.Close;
    end;
end;

procedure TCadRSubs.ExcluirExecute(Sender: TObject);
begin
    exclui(nil);
end;




Abraços a todos!


Mahdak

Mahdak

Responder

Posts

29/10/2006

Martins

Blz!

que tal vc tentar assim:
procedure TCadRSubs.exclui(sender: TObject); 
begin 
    DM.Soapconnection.Open; 
    try 
       DM.ClientDataSet.Close; 
       DM.ClientDataSet.Params[0].AsInteger :=  DM.ClientDataSet_ID.AsInteger; 
       DM.ClientDataSet.Open; 
       DM.ClientDataSet.delete; 
       DM.ClientDataSet.ApplyUpdates(0); 
    finally 
      DM.Soapconnection.Close; 
    end; 
end; 

procedure TCadRSubs.ExcluirExecute(Sender: TObject); 
begin 
    exclui(nil); 
end; 


Teste e depois diga qual foi o resultado.

Boa sorte :D


Responder

Gostei + 0

29/10/2006

Mahdak

ae martins, agora sim. deu certo. valeu pela força...

abraços!


Responder

Gostei + 0

29/10/2006

Martins

ae martins, agora sim. deu certo. valeu pela força... abraços!


Nobre colega [b:53fec68454]mahdak[/b:53fec68454] é sempre um enorme prazer ajudar os colegas deste forum, aprendemos muito aqui, sempre q for possível conte conosco.

Boa sorte!


Responder

Gostei + 0

29/10/2006

Mahdak

com certeza... não é atoa que ele é o maior forum da nosssa comunidade

abraços!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar