LENTIDAO EM ROTINA DE BUSCA DE ARQUIVOS
Amigos bom dia!
VB 6
Tenho uma rotina nos relatórios, onde faço uma busca para ver se o arquivo de imagem (Logo do cliente) está presente no path informado pelo próprio cliente antes de carregar e exibir no form/relatorio.
Funciona perfeitamente, porém quando vou fazer manutenção no sistema, usando o banco do cliente, o path informado não existe na meu micro, então a rotina demora certa de 1 minuto para dar o aviso de que o logo não foi encontrado e então abrir o relatório sem ele. Estou achando isso muito tempo, o correto era ver que o path não existe e dar logo a mensagem, passando a execução do resto do código que é exibir o relatório sem exibir o logo.
Será que o método Dir do VB6 tem algum bug oculto?
A rotina é essa:
[ô]Chamada a localização do Logo
Private Sub cmdAbreRelatorio_Click()
If ArquivoExiste(rsLogo!cmpLogo & [Ô][Ô]) = True Then
[ô]dimensiona e posicona o logo no relatorio
Else
[ô]mensagem de logo não encontrato
End If
[ô] Segue exibição do relatório
End Sub
[ô]Módulo
[ô] verifica se arquivo e path passado existe
Public Function ArquivoExiste(sArquivo As String) As Boolean
On Error Resume Next
Dim x As Long
x = Len(Dir(sArquivo))
If Err Or x = 0 Then ArquivoExiste = False Else ArquivoExiste = True
End Function
Alguém saberia como resolver essa demora na execução do código?
Obrigado
VB 6
Tenho uma rotina nos relatórios, onde faço uma busca para ver se o arquivo de imagem (Logo do cliente) está presente no path informado pelo próprio cliente antes de carregar e exibir no form/relatorio.
Funciona perfeitamente, porém quando vou fazer manutenção no sistema, usando o banco do cliente, o path informado não existe na meu micro, então a rotina demora certa de 1 minuto para dar o aviso de que o logo não foi encontrado e então abrir o relatório sem ele. Estou achando isso muito tempo, o correto era ver que o path não existe e dar logo a mensagem, passando a execução do resto do código que é exibir o relatório sem exibir o logo.
Será que o método Dir do VB6 tem algum bug oculto?
A rotina é essa:
[ô]Chamada a localização do Logo
Private Sub cmdAbreRelatorio_Click()
If ArquivoExiste(rsLogo!cmpLogo & [Ô][Ô]) = True Then
[ô]dimensiona e posicona o logo no relatorio
Else
[ô]mensagem de logo não encontrato
End If
[ô] Segue exibição do relatório
End Sub
[ô]Módulo
[ô] verifica se arquivo e path passado existe
Public Function ArquivoExiste(sArquivo As String) As Boolean
On Error Resume Next
Dim x As Long
x = Len(Dir(sArquivo))
If Err Or x = 0 Then ArquivoExiste = False Else ArquivoExiste = True
End Function
Alguém saberia como resolver essa demora na execução do código?
Obrigado
Dim x As Long
x = Len(Dir(sArquivo))
If Err Or x = 0 Then ArquivoExiste = False Else ArquivoExiste = True
Porque vc não faz if Dir(sArquivo) <> [Ô][Ô] para verificar se existe ou não...
Acho que len() está te dando o problema...
x = Len(Dir(sArquivo))
If Err Or x = 0 Then ArquivoExiste = False Else ArquivoExiste = True
Porque vc não faz if Dir(sArquivo) <> [Ô][Ô] para verificar se existe ou não...
Acho que len() está te dando o problema...
Lizander o len somente faz a contagem do retorno para saber se retornou algo ou não, pois do contrário teria de comparar se é <> de [Ô][Ô] . Não é ele o responsável pela lentidão, acredito que seja algo com a localiação do Dir no windows.
Porém o estranho é que hoje, pela primeira vez isso não aconteceu. Achei muito esquisito, pois fui rastrear a rotina passo a passo e ver onde o ponto de lentidão acontecia, mas não aconteceu. vou acompanhar para ver.
Porém o estranho é que hoje, pela primeira vez isso não aconteceu. Achei muito esquisito, pois fui rastrear a rotina passo a passo e ver onde o ponto de lentidão acontecia, mas não aconteceu. vou acompanhar para ver.
Tópico encerrado , respostas não são mais permitidas