Consulta parametrizada em multi camada SOAP
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:
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:
em um aplicativo de camada simples isso é moleza de fazer, eu faria mais ou menos assim para exibir os dados no dbgrid:
nao sei se conseguir ser claro, mas se alguem puder me ajudar....[/b]
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
Curtidas 0