Fórum Transação DbExpress multi camadas #373626
15/08/2009
0
algum exemplo?
Guibas
Curtir tópico
+ 0Posts
15/08/2009
Paullsoftware
tipo: eu tenho um WebService e chamo o Metodo UpDate por exemplo ele é disparado no cliente mas executado no servidor, então, uso a mesma lógica para o controle de transações :wink:
me diz como taz fazendo!
ta usando WebService com SOAP?
Gostei + 0
16/08/2009
Guibas
estou usando no servidor
sqlconnection
sqlquery
datasetprovider
cliente
socketconnection
clientdataset
datasource
e como sou iniciante nesse tipo de programacao...
é possivel enviar comandos pra ser executado no servidor?
tipo passar os parametros pra um insert ser executado no servidor?
que ai resolveria meus problemas...
Gostei + 0
23/08/2009
Paullsoftware
[b:c5da71ea86]Camada: Regras de Negócio (executada no Servidor de Aplicação)[/b:c5da71ea86]
function TLocServ.CarregaFeriados(CodFilial:Integer; Chave: WideString; var Messagem: WideString): TSOAPAttachment; var DataModule:TDM_LOCADORA; cdsTemp:TClientDataSet; begin if ValidaChave(Chave) then begin DataModule := TDM_LOCADORA.Create(nil); try with DataModule do begin Messagem := ´´; cdsTemp := TClientDataSet.Create(nil); strErro := TStringList.Create; cdsTemp.Name := ´cdsTemp´; cdsTemp.SetProvider(dspConsultas); qryCONSULTAS.Close; qryCONSULTAS.CommandText := ´select * from FERIADOS where CODFILIAL=:CODFILIAL order by DATA´; qryCONSULTAS.Params[0].AsInteger := CodFilial; cdsTemp.Open; Registro := TStringStream.Create(cdsTemp.XMLData); Registro.Position := 0; Result := TSOAPAttachment.Create; Result.SetSourceStream(Registro); end; except on msg:Exception do begin strErro.Add(´Erro no processo de seleção dos Feriados!´); strErro.Add(´Mensagem Original: ´ +msg.Message); Messagem := ´Erro no processo de seleção dos Feriados!´+#1313+msg.Message; end; end; end else Messagem := ´Chave de Execução Invalida!´; end;
[b:c5da71ea86]Camada de Aplicação Cliente[/b:c5da71ea86]
//Variavel usada para invocar os métodos da WSDL importadas da Camada Servidora GetLocadora :=GetILocServ(); //Transporto os dados processados no Servidor para a Camada Cliente passando alguns parametros cdsCONSULTAS.LoadFromStream(GetLocadora.CarregaFeriados(GlbFilial, ´MINHA_CHAVE_VALIDACAO´, Mensagem).SourceStream);
é só uma parte do código para uma chamada simples com retorno de dados de uma rotina executada na camada de aplicação e retorna o resultado para camada cliente enviado os dados através de Steam em conjunto com o ClientDataSet, muito bom...
espero ter ajudado, qualquer coisas estamos ai :wink:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)