Transação DbExpress multi camadas
Alguém pode me informar como fazer uma transção com sistema multi camadas já que o sqlconnection está no servidor?
algum exemplo?
algum exemplo?
Guibas
Curtidas 0
Respostas
Paullsoftware
15/08/2009
Como você ta controlando as chamadas as rotinas do seu webservice??
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?
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
Guibas
15/08/2009
nao estou usando soap...
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...
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
Paullsoftware
15/08/2009
dá uma olhada no blog do [b:c5da71ea86]Bruno Lichot[/b:c5da71ea86] ele tem muita coisa sobre MultCamadas. ( http://cc.embarcadero.com/Author.aspx?ID=795118 ), mas usando SOAP tem sim, não só como enviar os parametros para serem executados, como também enviar um DataSet inteiro contendo todos os dados em tela para serem validades na Camada Servidora por meio de Steam em conjunto com o ClientDataSet... Segue um uma rotina básica de como uso em minha aplicações, não está completa, pois, estou sem Delphi aqui pra testar e desculpa a demora, é que ultimamente o tempo ta curto... um abraço :wink:
[b:c5da71ea86]Camada: Regras de Negócio (executada no Servidor de Aplicação)[/b:c5da71ea86]
[b:c5da71ea86]Camada de Aplicação Cliente[/b:c5da71ea86]
é 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:
[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