3 Camadas - Atualizar Query

21/05/2003

1

Tenho uma duvida. Eu tenho uma aplicação em 3 Camadas. Estas aplicações, tem 2 módulos. Servidor e Cliente. No módulo Servidor, eu coloco as querys e no módulo cliente o ClientDataSet, para fazer conexão com o Remote DataModule(DCOM). Agora vem a duvida: Como ter acesso a query q esta no modulo Servidor(Outro programa), no sentido de criar um parametro, q seja lido no lado cliente e não no servidor? Os dataset, levam informações e gravam, com o comando post, altero, mas tudo via clientdataset, q não aceita instrução SQL, tipo, select, insert e etc.. Como faço? se eu colocar as querys no lado cliente, eu consigo, mas foge a lógica de computação distribuida(multicamadas), pois no lado cliente não deve ter nada. Não sei se fui claro.


Responder

Posts

22/05/2003

Tathianam

Não sei se eu entendi muito bem o que você quer dizer, mas vamos lá...

No lado do servidor você necessita de um TDATASETPROVIDER ligado à sua Query e, no lado do cliente, o seu TCLIENTDATASET será ligado ao provider do servidor, desde que esteja ligado também ao DCOM.

Bom, espero ter ajudado...

Tathiana


Responder

28/05/2003

Paulo

olá, thatianam, não é isso não. O que eu quero é o seguinte: Como criar, por exemplo um parâmetro, no lado cliente se as querys estão no lado servidor? ex:
Tenho numa tela, lado cliente, com um edit onde eu entro por exmplo com um nome. Se fosse tudo no lado cliente, eu faria assim:
with query1 do begin
close;
sql.clear;
sql.add(´select * from tabela where nome =:nome´);
parambyname(´nome´).asstring:=edit1.text;
open;
end;
Só q as querys estão no lado servidor e não no cliente e o formulário onde vai receber o parâmetro está no lado cliente e não no servidor e o TClientDataSet, não aceita instrução SQL. Então pergunto, como atualizar querys usando midas(DataSnap)? É esta minha pergunta, mas valeu pela intenção, obrigadão, mesmo. Lembrando que o lado servidor é outro programa, sendo acessado pelo protocolo DCOM(TClientDataSet).


Responder

28/05/2003

Kotho

bom Paulo, vc pode fazer de 2 maneiras:

1- deixar a clausula select no lado servidor (pronta), e atribuir o parametro no lado cliente...

2- alterar a clausula no lado cliente. Para isso vc tera q mudar uma propriedade no DataSetProvider chamada: Options/poAllowCommandText para True.

Atenciosamente...


Responder