3 Camadas - Atualizar Query
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.
Paulo
Curtidas 0
Respostas
Tathianam
21/05/2003
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
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
GOSTEI 0
Paulo
21/05/2003
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).
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).
GOSTEI 0
Kotho
21/05/2003
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...
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...
GOSTEI 0