REVELAR

Fórum Consulta parametrizada em multi camada SOAP #331927

23/10/2006

0

caros colegas, no meu projeto SOAP multi camadas tenho uma consulta parametrizada no aplicativo cliente.

essa consulta é do tipo mestre detalhe. pelo que notei, a consulta por paramentros na camada cliente traz para a memoria os registros da tabela cujo parametro for passado, como por exemplo:

DM.cdsRTipo_.Close;
DM.cdsRTipo_.Params[0].AsString := edtTipo.text + ´¬´;
DM.cdsRTipo_.Open;


se eu digitar a letra ´A´ e der um ShowMessage(DM.cdsRTipo_.Params[0].AsString ) nesse parametro, o que me é retornado é: ´A¬´ e não o registro corrente da tabela (que seria o que eu precisaria), que por sinal está no aplicativo servidor.

[b:f738f7985f]a minha consulta na aplicação cliente faz assim:[/b:f738f7985f]

tenho um ClientDataSet(tabela) mestre ´A´ com dois parametros (Codigo, Nome) e um ClientDataSet(tabela) detalhe ´B´ com dois parametros (Codigo_TabelaA, descricao).

par cada ClientDataSet tenho um DBGrid na tela, onde o usuário irá ver o resultado da pesquisa que ele realizou.


o usuário digita num edit o parametro ´Nome´ do ClientDataSet ´A´ e o sistema deveria me retornar nao o parametro, mas o registro fisico do Parametro ´Codigo´ contido na tabela para eu poder parametrizar o restante da consulta... seria algo parecido com isso:


//DM.cdsRTipo_.Params[0]  = nome
//DM.cdsRTipo_.Params[1]  = codigo
//DM.cdsRDesc_.Params[0] = Codigo_TabelaA
//DM.cdsRDesc_.Params[1] = descricao

 DM.ConnSIGAX.Open;
    try
       DM.cdsRTipo_.Close;
       DM.cdsRTipo_.Params[0].AsString := edtNome.text + ´¬´;
       DM.cdsRTipo_.Open;
       
       DM.cdsRDesc_.Close;
       DM.cdsRDesc_.Params[0].AsString := DM.cdsRTipo_.Params[1].AsString;
       DM.cdsRDesc_.Open;
       
    finally
      DM.ConnSIGAX.Close;
    end;



em um aplicativo de camada simples isso é moleza de fazer, eu faria mais ou menos assim para exibir os dados no dbgrid:

DM.cdsRTipo_.Close;
DM.cdsRTipo_.commandtext := ´select * from "tabela A" where "campo nome" =´+edtNome.text + ´¬´;
DM.cdsRTipo_.Open;
     
DM.cdsRDesc_.Close;
DM.cdsRDesc_.commandtext := ´select * from "tabela B" where "campo Codigo_TabelaA" =´+ DM.cdsRTipo_CODIGO.AsString;
DM.cdsRDesc_.Open;


nao sei se conseguir ser claro, mas se alguem puder me ajudar....[/b]


Mahdak

Mahdak

Responder

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

Aceitar