Fórum Como mudar SQL dinamicamente de um WebService #244468
26/07/2004
0
tenho a seguinte arquitetura...
um SOAP Server Application com um Soap DataModule, com uma query (qryPessoa) e um datasetprovider (dspPessoa), corretamente ligados e realizando o seguinte comando SQL: ´SELECT * FROM TAB_PESSOA´.
E uma aplicação cliente que faz as operações (insert, update, delete), utilizando um clientdataset.
Até aqui tudo funciona corretamente!
Meu problema é quando tento realizar uma pesquisa sobre o ClientDataSet, considerando que minha tabela possui um tamanho razoável, e o banco estara diposnivel num servidor fora da empresa, seria interessante otimizar o result set... para isso eu deveria alterar a query e carregar novamente o clientdataset...
ai está o problema... eu até (em tese) consigo alterar o sql de minha qryPessoa, porém ao recarregar o clientdataset, o resultado esperado não ocorre... o que temos é o comando sql antigo (´SELECT * FROM TAB_PESSOA´), e infelizmente isto nao me atende... :o(
alguém saberia de orientar para solucionar este problema???
tipo... gostaria de passar inicialmente o comando
select * from tab_pessoa where nom_pessoa like ´¬Daniel¬´ . Por exemplo!
[]s[color=darkblue:0778a0cc6f][/color:0778a0cc6f]
Danielnascimento
Curtir tópico
+ 0Posts
26/07/2004
Rômulo Barros
Altere a propriedade do DataSetProvider Options[poAllowChangeCommandText] para True e siga os passos:
SqlQuery.Sql.Clear; ClientDataSet.CommandText := ´Novo Select´ ; ClientDataSet.Open();
Quando vc abre o ClientDataSet, o conteúdo da sua propriedade COMMANDTEXT apenas será executado se não houver nenhuma outra instrução SQL na propriedade Sql da SqlQuery. Por isso é que deveremos limpar o SQL da SqlQuery. Também é por isso que o propriedade Options[poAllowChangeCommandText] do DataSetProvider vem por default o valor ´False´
:lol: :lol: :lol:
Gostei + 0
26/07/2004
Danielnascimento
porem vc saberia me explicar o pq, de qdo eu utilizo um clientdataset, com uma tsqlquery, e um datasetprovider numa aplicação local e altero q query funciona... :oops:
Abraços e muito obrigado!
Gostei + 0
27/07/2004
Danielnascimento
[]s
Daniel
Gostei + 0
27/07/2004
Rômulo Barros
Supondo PoAllowChangeCommandText do DataSetProvider como True, temos:
Se a propriedade Sql do TSqlQuery estiver vazia, será válido o q estiver na propriedade CommandText do ClientDataSet. Se Sql não estivar vazio, será válido a TsqlQuery.
Gostei + 0
10/05/2005
Fr3dll
Gostei + 0
11/05/2005
Fr3dll
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)