MAPEAMENTO DE REDE

LUIS.HERRERA 11/03/2011 09:31:55
#367743
Bom dia. Pesquisei, mas não encontrei nada esclarecedor, principalmente porque não entendo muito do assunto.

Alguns clientes reclamam que meu sistema não funciona quando está mapeada a rede.

A estrutura do programa é assim:

Servidor
C:\myPrograma\
meu.EXE
meu.MDB

Estações
Atalho (mapeado) não funciona
Atalho (caminho direto)
C:\myPrograma\meu.EXE funciona
ou
\\ipxxx.xxx.xxx\myPrograma\meu.EXE funciona

No código do EXE sempre uso as chamadas assim:

Primeiro testo se o arquivo existe no lugar indicado:

[ô] aqui primeiro pego o path informado pelo cliente que fica gravado no registro do windows.

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

ou em outros pontos do código assim:

[ô] aqui pego o path direto do EXE em uso que está fisicamente no servidor, mas em execução na estação (ativado pelo atalho).
App.path & [Ô]\imagens\logo.gif[Ô]

A pergunta é:
Essas chamadas podem impedir que o programa funcione quando a pasta do servidor está mapeada?
ou
O mapeamento no Windows não funciona dessa forma?

Importante:
Os clientes (TI) geralmente querem deixar mapeado, por ser mais fácil implantar nos terminais, além claro de ser mais seguro e não deixar exposto o path do servidor.

Porém só não tenho problemas quando eles instalam e alteram o atalho diretamente para o path do EXE no servidor, aí funciona perfeitamente.

Aguardo algum FAROL que ilumine esse universo ESCURO do Windows.

Abraços
LUIS.HERRERA 11/03/2011 11:04:01
#367751
Estava lendo um artigo antigo do Macorati, http://www.macoratti.net/acc_comp.htm sobre uso do banco no servidor. Só que no artigo ele aborda o uso do EXE sempre local nas estações e chamando o banco via uma variável do INI. Porém no meu caso o EXE fica centralizado no Servidor, e acredito que esse seja o problema com o mapeamento.

Se o EXE é carregado do servidor na memória da Estação para execução, aqui o mapeamento deve se perder, pois o app.path do EXE continua sendo no servidor, mas como foi ativado pelo mapeamento ele pode se perder. Será isso?

Como o path do banco fica gravado no registro do windows localmente, esse path talvez fique diferente do mapeado e quando o EXE usa o app.path, pode encontrar um caminho conflitante. A princípio é isso que eu consigo pensar, já que se não mapear tudo funciona.
LUIZCOMINO 11/03/2011 11:21:39
#367754
Amigo bom dia,
eu costumo fazer o seguinte se seu banco fica no servidor você deve informar o local do banco na string pelo ip ex:
\\ipxxx.xxx.xxx\banco.mbd

ai você pode fazer de 2 formas instalar o software direto nas maquinas ou instalar o software no servidor onde está o banco de dados e jogar o atalho do programa nas estações.

assim não tem problema se a unidade está mepeada ou não pq ele vai apontar para o banco que está na sua string de conexão \\ipxxx.xxx.xxx\banco.mbd.
abraço!
LUIS.HERRERA 11/03/2011 11:28:58
#367757
xará bom dia.
Instalar o sistema só no servidor não funciona, pois as DLLs e OCX precisam estar na estação, do contrário não funciona. Isso já foi tentado e o sistema dá problema sempre que precisa acessar os componentes. Clientes fizeram isso e até mapearam, deu erro e só depois de muitas perguntas ví o problema e mandei instalar sempre localmente.

Sobre o mapeamento há duas questões:
1- é o acesso ao EXE que está na rede.
2- é o EXE depois de executado, acessar o banco que também está na rede. O caminho do banco é informado pelo cliente, mas fica sempre de modo absoluto e no registro do windows. Se o cliente mudar o banco, o sistema voltará a perguntar onde ele está.

Então o que ocorre é que ao tentar rodar o EXE pelo atalho mapeado da estação, o sistema inicia e fecha após o login sem nenhuma informação. Se não mapear funciona.
MARCELO.TREZE 11/03/2011 11:38:16
#367762
Olha luiz eu não sei como vc está fazendo este mapeamento, bom eu uso meus softwares da seguinte maneira:

ao se instalar o programa pergunta se o software será instalado cliente ou servidor.

se for servidor informa o caminho local se for cliente, é aberto a janela que mapeara a rede, onde se informa o csminho do banco.

bom isso só terá problema se a estrutura da rede mudar.

LUIS.HERRERA 11/03/2011 14:07:30
#367778
No caso não há duas instalações, só um. Após instalar na estação de trabalho o EXE é excluído e o atalho apontado para o que está no servidor.
Como expliquei acima, há dois caminhos, um do atalho para o EXE no servidor e outro que o EXE usa para abrir o banco.
Quando um cliente mapeia a rede, se o EXE estiver no servidor e o seu atalho apontando para o mapeamento não funcionar, mas se não houver mapeamento funciona.
Agora Se o EXE estiver local (estação) então funciona.
Tópico encerrado , respostas não são mais permitidas