Fórum Transferencia arquivos com Indy #277770
18/04/2005
0
nao consigo fazer transferencia de arquivos entre os dois componentes.
Enviar arquivos TXT do Client para Server e vice-versa.
Alguem tem algum exemplo de como faço isso !
gracias
Craudio
Curtir tópico
+ 0Posts
18/04/2005
Massuda
Gostei + 0
18/04/2005
Craudio
O processo eh o seguinte :
Tenho um sistema de frete q usa sincronizacao de base de dados(mas nao uso replicacao do banco). tenho triggers nas tabelas e qdo a tabela sofre alteracao (I,U,D) a trigger gera um registro dessa tabela, pra uma tabela onde ficam os logs. o sistema gera um TXT dessa tabela e envia pra matriz . Essa por sua vez faz a verificacao de codigos recebidos(pra evitar registros duplicados) e retorna um txt para as filiais com os novos codigos. Entao ha uma troca de arquivos de texto de maneira q ambas as bases de dados fiquem iguais. E como estou trocando os componentes FASTNET pelos componentes INDY. Travei ae !
procedure TFAtualizarMatrizFilial.EnviaArquivo(Destino: Char);
var
MStream: TMemoryStream;
ListaArquivos: TStringList;
begin
{Copia o Arquivo para o Destino}
if Destino=´M´ then
NMStrm.Host := EComputadorDestino.Text
else
NMStrm.Host:=HostNameFilial;
MStream := TMemoryStream.Create;
ListaArquivos :=TStringList.Create;
try
MostraMensagem(´Compactando arquivo de remessa...´);
ProgressBar.Position:=0;
ProgressBar.Max:=0;
ListaArquivos.Add(DMG1.SysInfo.WinTempPath+´\dados.Rem´);
BackupFile.BackupToStream(ListaArquivos,MStream);
if Destino=´M´ then
begin
MostraMensagem(´Enviando dados para matriz...´);
end
else
begin
MostraMensagem(´Enviando dados para filial...´);
end;
{Envia mensagem para computador destino acompanhar a transferencia}
if DMG1.TBConfiguracoesSistemaInd_Matriz_Filial.AsString=´M´ then
NMMsg.Host:=HostNameFilial
else
NMMsg.Host:=EComputadorDestino.Text;
NMStrm.FromName := IPInternet;
if Destino=´M´ then
NMMsg.PostIt(´M´+´Recebendo dados da filial...´)
else
NMMsg.PostIt(´M´+´Recebendo dados da matriz...´);
NMStrm.PostIt(MStream); {Envia o arquivo}
finally
MStream.Free;
ListaArquivos.Free;
end;
MostraMensagem(´Dados enviados com sucesso!´);
MostraMensagem(´Aguardando retorno...´);
ProgressBar.Position:=0;
end;
Gostei + 0
18/04/2005
Craudio
Gostei + 0
19/04/2005
Massuda
O exemplo mais simples que me lembro está no demo do Indy 9, que você pode baixar [url=http://www.indyproject.org/Demos/index.iwp]desta página[/url] do site deles. Dê uma estudada no demo ImageServer.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)