[Dúvida] MultCamadas com Servidor SOAP

Delphi

20/05/2006

No meu servidor Configurei as configurações para acesso ao banco padrão do IB (employee) fiz normalmente crei que como todos fazem..

Adicionei os componentes:
SqlConnection
SqlDataSet
DataSetProvider

minha dúvida é::

no DataSet do Servidor eu fiz: [b:420b6f3de7]SELECT * FROM EMPLOYEE WHERE EMP_NO=:EMP_NO[/b:420b6f3de7] para trazer os dados informando um parametro, porém se por outro lado eu necessitar de trazer todos os registro dessa tabela tenho que usar um outro DataSet no Servidor para isso?


Paullsoftware

Paullsoftware

Curtidas 0

Respostas

Bon Jovi

Bon Jovi

20/05/2006

Sim. Ou:

SELECT *
FROM EMPLOYEE
WHERE (EMP_NO=:EMP_NO OR 1 = :TODOS)

Aí passe por ex. 1 no parametro TODOS, ou 0 para nao trazer todos.


GOSTEI 0
Thomaz_prg

Thomaz_prg

20/05/2006

Ou então, no seu DataSetProvider, em Options, defina a propriedade poAllowCommandText para true. Daí você pode colocar o SQL direto na propriedade CommandTExt do ClientDataSet.


GOSTEI 0
Bon Jovi

Bon Jovi

20/05/2006

Funciona perfeitamente setar diretamente pelo ClientDataSet. Só fique ciente que estará misturando a regra de negócio com a camada cliente.


GOSTEI 0
Thomaz_prg

Thomaz_prg

20/05/2006

Sim, eu sei, mas só que, se for um Dataset usado unicamente para pesquisa não irá influenciar (muito).


GOSTEI 0
Paullsoftware

Paullsoftware

20/05/2006

Problema solucionado, mudei a propriedade [b:2b1aea3d7e]poAllowCommandText [/b:2b1aea3d7e] do DataSetProvider e realmente agora está funcionando, porém agora tenho outra dúvida...

no servidor eu coloquei um SqlConnection, um SqlDataSet e Um DataSetProvider...
no SqlDataSet fiz: Select * From Funcionarios
na aplicação cliente fiz uma alteração no Registro por Exemplo: Mudei o Nome de Paulo Ricardo para Paulo Ricardo Rodrigues cliquei sobre o botão Gravar..

Gravar
CdsFuncionarios.Post;
CdsFuncionarios.ApplyUpdates(0);
mais quando vou verificar se os dados foram gravados no servidor não foi, e ai, como faço??


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

20/05/2006

no evento OnReconcileError do CdsFuncionarios, coloque:

ShowMessage(E.Message);

e veja se é retornado algum erro do servidor.


GOSTEI 0
POSTAR