Fórum 3 Camadas - SOAP x COM #167852

04/07/2003

0

Pessoal,

É o seguinte, estou construindo uma aplicação em tres camadas, e nos ultimos meses tenho me dedicado a estudar as tecnologias disponiveis.

entre elas o COM++ e o SOAP - WebServices


Bem cheguei a seguinte conclusão :
Aplicação Delphi banco Interbase, compudador Stand Alone

o COM++ é mais rápido do que o soap, porém achei o soap mais facil de fazer.

sei que o COM++ tem alguns problemas e sempre li que o SOAP é o futuro.

bem aplicação vai rodar na web e também dentro da empresa, intranet.

com soap detectei que como os registros tem fotos se buscar mais que 5 registros da erro, no COM++ Não dá.



bem gostaria de saber se alguém aqui pode me dar uma direção pois o tempo está passando e ainda não consegui decidir.

o servidor web é o apache

um grande abraço

Farway


Farway

Farway

Responder

Posts

04/07/2003

Alexandremarcondes

Qual o erro quando você passa mais de 5 registros?


Responder

Gostei + 0

08/07/2003

Afb

Pois bem amigo já estou a 2 dois anos mexendo com Mult-tier e Delphi o que posso lhe falar o erro e normal pois o SOAP - usando a formatação XML não trabalha ainda com um formato especifico para imagens, e outra coisa o DCOM, COM, COM++ são conexões diretas que ficam Instaciadas como estaria uma Aplicação Monolitica por isso e mais rápido e carrega mais o seu servidor, enquanto o SOAP trabalha como internet atendendo requisições e cortando as conexões;
OBS (O QUE E BOM MAIS PODE TE DESTRUIR SOAP EM ACESSOS DE CONCORRÊNCIA).
O que eu faço para solucionar este problema todas minhas imagens em JPEG gravadas em Banco são convertidas para o Tipo de Dados BLOB do ORACLE o que faço e na hora de ler converter ela novamente para o tipo de Image.

Segue um código:

Salva figura da memória para a tabela 

procedure TFPrincipal.Button4Click(Sender: TObject);
var J : TJPEGImage;
    figura : tbitmap;
    S : TMemoryStream;
begin
   // Para usar as opções do JPeg voce deve por a clausula << JPeg >> no uses
   // Para usar o clipbord (memoria) voce deve por a clausula << Clipbrd >> no uses

   // Cria Figuras
   figura := Tbitmap.Create;
   j := TJPEGImage.Create;
   S := TMemoryStream.Create;

   // Carrega do ClipBoard << Memoria >>
   figura.LoadFromClipBoardFormat(cf_bitmap,ClipBoard.GetAsHandle(cf_bitmap),0);
   J.CompressionQuality := 50; // 50¬ de Qualidade voce pode ir até 100

   // Mas não esqueça quanto mais qualidade maior o arquivo 
   J.Assign(figura);
   J.SaveToStream(S);

   // Salva Figura na Tabela
   b.foto.edit;
   b.fotoFoto.LoadFromStream(S);
   b.foto.post;
end;

Exibe figura 
procedure TFPrincipal.Button3Click(Sender: TObject);
var S:TMemoryStream;
    j:tjpegimage;
begin
   // Só faz se o registro onde esta o JPeg não estiver vazio   
   if b.fotoFoto.BlobSize <> 0 then begin
      image1.Visible := true;
      S := TMemoryStream.Create;
      j := Tjpegimage.Create; // Cria o Jpeg
      b.fotoFoto.SaveToStream(S); // Salva texto da tabela na memória
      S.Seek(0, 0);

      j.LoadFromStream(S); // Carrega o Jpeg
      j.Scale := jsquarter; // mostra em 1/8

      image1.Picture.Bitmap.Assign(j); // Joga JPeg para o image1
   end else begin
      showmessage(´Imagem vazia´);
      image1.Visible := false;
   end;
end;




Até mais


Responder

Gostei + 0

10/07/2003

Farway

Qual o erro quando você passa mais de 5 registros?


É o seguinte : ´An invalid character was found in text contente´

line n
´sdfsdfdsfsdfsdfdffcrttyjyun´

acho que ele se perde na hora da transformação de imagem .

Devo optar pelo SOAP mesmo assim .

Como vc reslveria a questao a seguir :

Uma empresa tem filiais , e estas filias tem que ter acesso a aplicação gerenciadora.

soap é mesmo o melhor para conexao externa ?

E internamente como resolvo o problema ?


obrigado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar