ATUALIZACAO REMOTA

LG.MOURA 25/09/2012 14:23:45
#410455
Boa tarde pessoal, gostaria de saber qual seria a melhor alternativa para atualização de dados online...vou tentar explicar melhor:

Tenho um aplicação cliente com banco local onde é atualizado constantemente, esses dados são extraídos de um banco de dados(access) local, ou seja no servidor da empresa.. zipado e enviado para um FTP online.. onde o cliente atualiza os dados fazendo o download desse arquivo, descompactando e inserindo no BD local.

até aí tudo bem.. funciona bem até hoje. porem em algumas situações algum usuário está atualizando no momento enviar/substituir o aquivo para o FTP online, pois o arquivo está em uso..

alguem teria alguma solução para isso ou outra forma de [Ô]soncronização[Ô]???
MARCELO.TREZE 25/09/2012 14:36:17
#410458
colega o código seria de grande valia.

NILSONTRES 25/09/2012 18:22:59
#410485
Troque o banco de dados para o MYSQL, e trabalhe on line com a base de dados.
KERPLUNK 25/09/2012 18:31:06
#410488
Você sabia que é possível fazer um webservice retornar valores com uma simples chamada de URL? Sem precisar usar nenhum [Ô]toolkit[Ô] para SOAP, puro e simples XML
Você vai em um browser qualquer e digita algo como:
www.meuservidor.com.br/meuwebservice.asmx/BuscarConfiguracao&Cliente=001

E pronto, os dados que você quer serão exibidos no browser em formato XML que é facinho de se trabalhar...
LG.MOURA 25/09/2012 19:32:21
#410489
Pessoal eu ja trabalho com o banco de dados online mysql.. porem como são muitos registros demora muito pra [Ô]atualizar[Ô] essas informações.. a solução que usei foi q eu mencionei acima: gero varios arquivos txt(clientes, produtos, fornecedor, etc...) zipo esses arquivos em um único, e faço um upload para um FTP online.. no caso do programa cliente, ele faz um [Ô]download[Ô] desse arquivo e descompacta e e insere as informações.. tudo automático.. foi uma forma que encontrei de atualizar sem demorar muito pois a quantidade de registro são muitos.. porem há aquele situação que na hora de atualizar para o FTP algum ta usando o arquivo aí nao da pra sobrescrever..

lembrando que pelo webservice como são muitos registros iria perder performance poderia demorar muito mais..

ainda no aguardo de uma soluçao ou nova ideia.
MARCELO.TREZE 26/09/2012 11:07:05
#410520
Vai eu de novo bom o que você está fazendo eu consigo entender, porém conheço diversas maneiras(códigos) de se fazer isso, então se vc postasse a parte em que vai subscrever e gera o erro, pois eu geralmente sugiro um tratamento de erro que gera um loop que força a barra até que o arquivo não esteja sendo usado.

exemplo:

Inicio:
On Error Goto TrataErro:

[ô]código para atualizar

Exit Sub
TrataErro:
If Err.Number = (numero do erro gerado) Then
Goto Inicio
End If



LG.MOURA 26/09/2012 18:04:08
#410600
Segue exemplo do codigo que envio o arquivo para o FTP:

Citação:

Dim strMsg
Dim objFTP As New NIBLACK.ASPFTP
objFTP.sServerName = [Ô]ENDERECO FTP[Ô]
objFTP.sPassword = [Ô]SENHA[Ô]
objFTP.sUserID = [Ô]USER[Ô]
pp = objFTP.bConnect
If pp = False Then
wfunc = [Ô]Erro ao conectar Ftp[Ô]
GoTo trata_Erro
End If
tcaminho = Wcaminho & [Ô]\ArquivoTemp.zip[Ô]

[ô]envia o arquivo para FTP
dfg = objFTP.bPutFile(tcaminho, [Ô]/caminhodoservidorweb/[Ô] & [Ô]/ArquivoTemp.zip[Ô])

If dfg = False Then
wfunc = [Ô]Erro ao enviar arquivo para o Ftp[Ô]
If Err.Number >= 0 Then
registraLogErros Err.Number, Err.Description, wfunc
Err.Clear
End If
End If


Wdel = objFTP.bDeleteFile([Ô]/consulpro/web/pedonline/[Ô] & dcnpj & [Ô]/Exporta.zip[Ô])
If Wdel = False Then
wfunc = [Ô]Erro ao deletar arquivo no Ftp[Ô]
If Err.Number >= 0 Then
registraLogErros Err.Number, Err.Description, wfunc
Text15.Text = Err.Number & Err.Description & wfunc
Err.Clear
End If
End If


df = objFTP.bRename([Ô]/caminhodoservidorweb/[Ô] & [Ô]ArquivoTemp.zip[Ô], [Ô]/caminhodoservidorweb/[Ô] & [Ô]/Arquivo.zip[Ô])
If df = False Then
wfunc = [Ô]Erro ao renomear arquivo no Ftp[Ô]
If Err.Number >= 0 Then
registraLogErros Err.Number, Err.Description, wfunc
Text15.Text = Err.Number & Err.Description & wfunc
Err.Clear
End If
End If


Set objFTP = Nothing

LG.MOURA 02/10/2012 09:51:43
#411007
alguma luz no fim do túnel? rs
MARCELO.TREZE 02/10/2012 14:27:56
#411048
Colega não sei se você viu o tratamento de erro, você pode utiliza-lo, ou pode verificar no anual desta dll que vc está utilizando se existe algum função para verificar se o arquivo esta em uso ou não

Tópico encerrado , respostas não são mais permitidas