Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

thalesoli

[Resolvido] Como mudar o sql de uma query em app 3 camadas

Recommended Posts

Boa tarde pessoal

 

Estou começando o estudo de programação 3 camadas e me deparei com uma dúvida. Nas minhas aplicações client-server eu geralmente monto telas nas quais o cliente tem várias opções de pesquisa (codigo, nome, data), e eu mudo o sql em tempo de execução.

Mas em aplicação 3 camadas a aplicação do cliente não vê as query e não pode mudar. Tentei criar um método que recebe um parâmetro e que muda o sql dentro de uma lista. O método até muda, mas o client não sobre variações de retorno, pois sempre é retornado o sql padrão.

 

como posso resolver isso?

 

se alguém tiver uma apostila ou um livro a me indicar fico agradeço

 

desde já agradeço

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Marcio

 

Primeiramente obrigado por responder ao meu tópico

 

Bom, eu precisava que fosse dessa maneira pois a condição é totalmente diferente para cada tipo de busca.

 

A única maneira que eu vejo, sem ser por mudar a condição dinamicamente seria assim:

 

select  *from  clientewhere  (:TIPOBUSCA='A' AND CODIGO = :CODIGO) OR  (:TIPOBUSCA='B' AND NOME LIKE :NOME)ORDER BY  NOME

 

estou certo?

 

você conhece algum livro bom de 3 camadas?

 

desde já agradeço

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae beleza Thales ?Qual tecnologia você está usando?Poderia disponibilizar o codigo inteiro do seu método ?Eu tbm entendo pouco de Multi-camadas, mais talvez possa lhe ajudar ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Rodrigo

 

o método q estou fazendo é simples

 

procedure TTeste.MudaBusca(Modelo: Integer);begin  case Modelo of	0: query.sql.text := 'select * from cliente where AND CODIGO = :P';	1: query.sql.text := 'select * from cliente where AND Nome = :P';  end;end;

e eu chamo este método após abrir conexão Dcom e só depois eu abro o clientdataset.

 

estou usando o ZeosLib para estes testes

 

desde já agradeço

 

falow

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo

 

valeu pela ajuda

 

o q eu tava fazendo de diferente do seu codigo é que eu não abria a query no server, so o clientdataset.

 

falow

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.